Wenn Sie eine Access-Datenbank mit einem Kennwortschutz versehen, kann der Benutzer ohne Kennwort nicht darauf zugreifen (außer mit gegebenenfalls vorhandener krimineller Energie). Wie aber sieht es aus, wenn Sie mit mehreren Benutzern auf die Daten einer Anwendung zugreifen wollen und diese deshalb in Frontend und Backend aufteilen wollen Wir zeigen, welche Sicherheitslücken dadurch entstehen können und wie Sie diese – allerdings nicht ohne Aufwand – beheben können.
Die folgende Situation ist alltäglich: Sie möchten die Daten einer Datenbank, die auf dem Server liegt, schützen. Nur zugriffsberechtigte Mitarbeiter sollen darauf zugreifen können. Am besten noch so, dass verschiedene Mitarbeitergruppen nur auf bestimmte Tabellen zugreifen können.
Dummerweise besteht nicht die Möglichkeit, einen SQL Server einzurichten – mit diesem wäre das Vorhaben nämlich umsetzbar (zwar auch nicht in kurzer Zeit, denn dazu ist durchaus etwas Vorbereitungs- und Umsetzungsarbeit einzuplanen). Also müssen Sie sich mit einer reinen Access-Lösung behelfen.
Normalerweise besteht diese dann aus folgendem Szenario: Sie teilen die Datenbank in Frontend- und Backend auf und speichern dabei die Tabellen im Backend und legen entsprechende Tabellenverknüpfungen im Frontend der Datenbank an, über die Sie auf die Tabellen im Backend zugreifen können.
Frontend-Kennwort
Unerfahrere Benutzer versehen dann vielleicht jedes einzelne Frontend mit einem Kennwort, das nur der jeweilige Benutzer kennt. Der Benutzer meldet sich an und kann dann über die Verknüpfungen auf die Tabellen im Backend zugreifen.
Dummerweise liegt das Backend so immer noch völlig ungeschützt auf dem Server – das Kennwort haben Sie ja schließlich für die Frontend-Datenbank angelegt und nicht für das Backend.
Beim Anlegen der Verknüpfung fragt Access Sie dann nach dem Kennwort und speichert dieses mit der Verknüpfung.
In der Beispieldatenbank BE.mdb finden Sie eine Beispieltabelle namens tblTest mit ein paar Beispielfeldern.
Dieser fügen wir nun zuerst ein Datenbankkennwort hinzu. In neueren Access-Versionen verschlüsseln Sie die Datenbank somit gleichzeitig.
Exklusiv öffnen
Bevor Sie dies erledigen, sollten Sie jedoch sicherstellen, dass Sie die Datenbank im Exklusiv-Modus geöffnet haben. Dies erledigen Sie etwa unter Access 2010, indem Sie im öffnen-Dialog den Eintrag Exklusiv öffnen der öffnen-Schaltfläche auswählen (s. Bild 1).
Bild 1: öffnen einer Datenbank-Datei im Exklusiv-Modus
Dies gelingt übrigens nur mit Datenbanken, die noch nicht anderweitig geöffnet sind. Ist dies doch der Fall, erhalten Sie eine entsprechende Meldung (s. Bild 2).
Bild 2: Nur noch nicht geöffnete Datenbanken können exklusiv geöffnet werden.
Datenbank verschlüsseln
Wenn Sie die Datenbank im Exklusiv-Modus geöffnet haben, können Sie etwa unter Access 2010 im Datei-Bereich unter Informationen die Schaltfläche Mit Kennwort verschlüsseln aufrufen (s. Bild 3).
Bild 3: Zuweisen eines Datenbank-Kennwortes und Verschlüsseln der Datenbank
Access fragt dann per Dialog das Kennwort ab, wobei der Benutzer dieses zur Sicherheit zwei Mal eingeben muss (s. Bild 4).
Bild 4: Datenbankkennwort festlegen
Keine Sperrung auf Datensatzebene
Gegebenenfalls liefert dies eine Fehlermeldung wie in Bild 5. Sie brauchen dann nichts weiter zu tun – Access ignoriert dann einfach die Sperrung auf Datensatzebene.
Bild 5: Keine Kompatibilität mit Sperrung auf Datensatzebene
Kennwort testen
Schließen Sie nun die Beispieldatenbank und öffnen Sie sie erneut. Es sollte nun ein Dialog erscheinen, der Sie zum Eingeben des Kennworts auffordert (s. Bild 6).
Bild 6: Abfrage des Datenbankkennworts
Tabelle verknüpfen
Die einfachste Möglichkeit, per Frontend-Datenbank auf eine Tabelle in einer verschlüsselten und kennwortgeschützten Backend-Datenbank zuzugreifen, ist das Anlegen einer Verknüpfung.
Also schließen Sie die Backend-Datenbank und öffnen die zukünftige Frontend-Datenbank. Führen Sie die zum Verknüpfen mit einer externen Datenbanktabelle nötigen Schritte durch. Wenn Sie die Backend-Datenbank ausgewählt haben, erscheint wiederum der Dialog zur Eingabe des Datenbank-Kennworts. Nach der Eingabe zeigt Access schließlich die in der Backend-Datenbank enthaltenen Tabellen an (s. Bild 7). Wählen Sie die Tabelle tblTest aus und klicken Sie auf die Schaltfläche OK.
Bild 7: Verknüpfen mit der Tabelle der verschlüsselten Datenbank
Sie können nun wie gewohnt auf die Daten der verknüpften Tabelle zugreifen. Nun schließen Sie Access und die Frontend-Datenbank und öffnen beide erneut. Sie können nun auf die Tabelle des Backends zugreifen, ohne erneut das Kennwort eingeben zu müssen.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo