Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2009.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie Backends mit und ohne Kennwort automatisch komprimieren.

Techniken

Datenbankwartung

Voraussetzungen

Access 2000 oder höher

Beispieldateien

Frontend.mdb, Backend.mdb, Frontend_Shutdown.mdb, Frontend_CheckBeforeShutdown.mdb

Shortlink

653

Verschlüsselung und Komprimieren im Backend

André Minhorst, Duisburg

Wer seine Datenbank in Front- und Backend aufteilt, möchte die im Backend befindlichen Daten möglicherweise hin und wieder komprimieren. Vielleicht sollen die Daten im Backend gar durch ein Kennwort geschützt sein, um unbefugten Zugriff ohne Frontend zu verhindern. Und andere würden gern kennwortgeschützte Backends auch noch automatisch komprimieren. Wie all dies geht, zeigt dieser Beitrag.

Eine Datenbank ist schnell in Frontend und Backend aufgeteilt. Am einfachsten geht dies mit dem Assistenten zur Datenbankaufteilung (Access 2003 und älter: Extras|Datenbank-Dienstprogramme|Assistent zur Datenbankaufteilung, Access 2007: Daten verschieben|Access-Datenbank). Versierte Anwender oder solche mit speziellen Anforderungen an die Aufteilung der Datenbank importieren die Tabellen erst in das zukünftige Backend und löschen diese aus dem Frontend, bevor Sie das Frontend mit den Tabellen im Backend verknüpfen.

Komprimieren kann man Datenbanken ganz schnell, indem man unter Access 2003 und älter den Menübefehl Extras|Datenbank-Dienstprogramme|Datenbank komprimieren und reparieren und unter Access 2007 den Office-Menü-Eintrag Verwalten|Datenbank komprimieren und reparieren aufruft (ganz früher waren die Funktionen Komprimieren und Reparieren noch separat verfügbar). Das Komprimieren sorgt im Wesentlichen dafür, dass erstellte und wieder gelöschte Daten auch endgültig aus der Datenbankdatei entfernt, sowie Indizes intern neu sortiert werden.

Eine Datenbank schützen Sie mit einem Kennwort, indem Sie unter Extras|Sicherheit|Datenbankkennwort festlegen... (Access 2003 und älter) oder Datenbanktools|Datenbanktools|Mit Kennwort verschlüsseln (Access 2007) den Dialog zum Eingeben eines Datenbankkennworts verwenden.

Backend mit Kennwort ausstatten

Kombiniert wird das schwieriger, aber nur ein wenig: Wenn Sie das Backend einer Datenbankkombination mit einem Kennwort schützen möchten, um den Inhalt seiner Tabellen vor den Augen Neugieriger zu verbergen, können Sie dies wie gewohnt erledigen.

Wenn Sie das nächste Mal vom Frontend aus auf die verknüpften Tabellen zugreifen möchten, misslingt dies allerdings. Access meldet dann ganz lapidar: Kein gültiges Kennwort. Aha, kein gültiges Kennwort. Eigentlich gab es ja gar keine Gelegenheit, eines einzugeben - zumindest keine offensichtliche. Dies fand implizit im Hintergrund statt: Wenn beim Versuch, auf eine verknüpfte Tabelle eines verschlüsselten Backends zuzugreifen, kein Kennwort übergeben wird, dann wird halt ein leeres Kennwort angenommen.

Immerhin lässt sich die Verknüpfung löschen und neu anlegen. Dann erscheint auch der Dialog aus Abb. 1 und fragt das Kennwort ab. Gibt man hier die richtige Zeichenfolge ein, verknüpft Access die Tabelle ordnungsgemäß - allerdings mit einem kleinen Unterschied gegenüber der Verknüpfung mit einer Tabelle aus einem ungeschützten Backend. Den Unterschied sehen Sie, wenn Sie die Systemtabelle MSysObjects öffnen (vorher müssen Sie diese sichtbar machen, das geschieht unter Access 2003 und älter im Optionen-Dialog mit der Option Systemobjekte im Bereich Ansicht|Anzeigen, unter Access 2007 im Dialog Navigationsoptionen, den Sie über das Kontextmenü der Titelleiste des Navigationsbereichs erreichen).

pic001.png

Abb. 1: Dialog beim Verknüpfen mit einer Tabelle einer anderen Datenbank

Für eine verknüpfte Tabelle aus einer kennwortgeschützten Datenbank finden Sie in der Spalte Connect einen Eintrag vor, der das Kennwort im Klartext preisgibt - keine gute Sicherung, wenn der Benutzer Vollzugriff auf das Frontend hat (s. Abb. 2). Dieser Abwehrmechanismus greift also höchstens, wenn der Benutzer nicht weiß, wo er solche Informationen findet. Davon abgesehen ist es aber auch egal: Wenn Sie ein Backend per Kennwort schützen und mit einem Frontend darauf zugreifen, kann der Benutzer darüber ja auch auf die Daten im Backend zugreifen - außer Sie verhindern den Zugriff auf das Datenbankfenster (was aber nicht Thema dieses Beitrags sein soll).

pic002.png

Abb. 2: Das Kennwort des Backends wird in der Systemtabelle MSysObjects unverschlüsselt angezeigt.

Tabelle aus kennwortgeschütztem Backend wieder einbinden

Wenn Sie die Verknüpfung zu einer Tabelle aus einem kennwortgeschützten Backend aktualisieren möchten, verwenden Sie die Routine aus Listing 1. Der Unterschied zur herkömmlichen Vorgehensweise ist, dass die Connect-Zeichenfolge den zusätzlichen Parameter pwd mit dem entsprechenden Kennwort enthält.

Listing 1: Verknüpfung kennwortgeschützter Tabellen

Public Sub VerknuepfteTabellenWiedereinbinden()

Dim db As DAO.Database

Dim tdf As DAO.TableDef

Dim strBackend As String

Set db = CurrentDb

strBackend = CurrentProject.Path & "\Backend.accdb"

For Each tdf In CurrentDb.TableDefs

With tdf

    If .Connect <> "" Then

        .Connect = ";database=" & strBackend & ";pwd=ami"

        .RefreshLink

    End If

    End With

Next

End Sub

Wenn die Routine ein falsches Kennwort verwendet, löst dies Fehler 3031, Kein zulässiges Kennwort, aus.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Der DBMS-Connection-Wizard

Performanter Webzugriff auf MySQL-Datenbanken

Verknüpfte Datenbanken updaten

Benutzerverwaltung

Access, MySQL und Berechtigungsverwaltung

DBMS-unabhängiger Zugriff auf SQL Server und Co.

Anmeldung an SQL Server und Co.

Modale Dialoge mal anders

Access 2007: Sicherheitssystem einsetzen

© 2003-2015 André Minhorst Alle Rechte vorbehalten.