Verschlüsselung und Komprimieren im Backend

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

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar