Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access

Schützen Sie Ihre Daten vor unerlaubtem Zugriff Wenn Sie es nicht tun, gibt es dafür bestimmt Gründe. Nur sind es mit hoher Wahrscheinlichkeit keine guten Gründe. Nicht selten liegt es an fehlendem Fachwissen oder einer falschen Einschätzung der Daten oder es ist schlicht und ergreifend Bequemlichkeit. Die Sache mit der Bequemlichkeit sollten Sie selbst hinterfragen, das Fachwissen vermittelt Ihnen dieser wie die noch folgenden Artikel der Serie “Access und SQL Server-Security”.

“Die Daten dieser Datenbank sind nicht wichtig.” Diese Aussage basiert meist auf einer falschen Einschätzung der Daten. Es gibt in Unternehmen keine unwichtigen Daten. Es mag zwar Daten geben, die nicht unternehmenskritisch sind, aber unwichtige Daten Hand aufs Herz, haben Sie Zeit oder gar Budget für unwichtige Daten In der Regel sind alle Daten eines Unternehmens relevant und somit auch vor fremden Zugriff zu schützen. Dies hat inzwischen auch der Gesetzgeber verstanden. In den letzten Jahren sind verschiedene Gesetze in Kraft getreten, die entsprechende Zugriffskontrollen einfordern, sei es der Datenschutz nach der DSGVO und dem neuen BDSG oder das IT-Sicherheitsgesetz.

Es ist schon erstaunlich, dass es Gesetze braucht, um Unternehmen darauf hinzuweisen, dass ihre Daten und somit ihr Wissen schützenswert sind. Ob nun Produktionspläne, Forschungsergebnisse, Rezepturen, Patente, erfolgreiche Marketingaktionen, Kundenanalysen, Forecasts etc., bei all diesen Informationen handelt es sich um Wissen – relevantes Wissen für den täglichen Betrieb und zur Sicherung des Wettbewerbsvorteils eines Unternehmens.

Gelangen diese Daten in falsche Hände, stellt dies in vielen Fällen ein indirektes oder gar direktes Risiko für das Unternehmen dar. Deshalb sollte jeder im Unternehmen, vom Geschäftsführer bis zum Angestellten, darauf achten, wer zu welchem Zweck Zugriff auf die Unternehmensdaten hat.

Zugriffsschutz in Access

Es sieht dürftig aus. Access bietet als Zugriffsschutz lediglich das Datenbank-Kennwort. Zwar gibt es immer noch die Möglichkeit einer MDW-Datei, doch funktioniert diese nur mit dem veralteten Datenbankformat MDB.

Das Datenbank-Kennwort verschlüsselt die Access-Datenbank. Dabei ist es empfehlenswert, ein Kennwort zu verwenden, das aus Buchstaben, Zahlen und Sonderzeichen besteht und mindestens zehn Zeichen lang ist.

Es sollte aber auch nicht länger als 19 Zeichen sein, wenn es sich bei der Datenbank um ein Backend handelt, deren Tabellen in ein Access-Frontend eingebunden werden. Zwar akzeptiert das Backend durchaus mehr als 19 Zeichen, jedoch wird ein solches Kennwort beim Einbinden der Tabellen in das Frontend mit der Meldung Kein zulässiges Kennwort quittiert.

Dem Datenbank-Kennwort wird nachgesagt, es sei einfach zu knacken. Das ist seit dem Wechsel von MDB nach ACCDB ab Access 2007 nicht mehr der Fall. Um das Kennwort zu ermitteln, bedarf es schon guter Crack-Tools mit der Möglichkeit von Brute-Force-Angriffen. Je länger und komplexer ein Kennwort, umso höher ist der Aufwand für einen solchen Angriff.

Das Datenbank-Kennwort bietet also durchaus einen Zugriffsschutz. Dieser ist abhängig von der Länge und der Komplexität des Kennworts.

Doch genug der Theorie. Jetzt wird die Backend-Datenbank der Beispiel-Applikation WaWi verschlüsselt. Dazu öffnen Sie das Access-Backend WaWi_BE.accdb exklusiv (siehe Bild 1).

Exklusives Öffnen einer Datenbank

Bild 1: Exklusives Öffnen einer Datenbank

Hier wechseln Sie zum Menüpunkt Datei und klicken auf Informationen. Dort sehen Sie die Schaltfläche Mit Kennwort verschlüsseln (siehe Bild 2).

Verschlüsseln einer Datenbank mit einem Kennwort

Bild 2: Verschlüsseln einer Datenbank mit einem Kennwort

Ein Klick auf diese Schaltfläche liefert Ihnen einen Dialog (siehe Bild 3), in dem Sie im ersten Eingabefeld Ihr Kennwort eingeben und dies mit einer erneuten Eingabe im zweiten Eingabefeld bestätigen.

Festlegen des Kennworts

Bild 3: Festlegen des Kennworts

Ihr Kennwort sollte den oben genannten Empfehlungen entsprechen. Um bei diesem und den folgenden Beispielen nicht immer mühsam ein komplexes Kennwort einzugeben, tragen Sie als Kennwort den Begriff unsicher ein. Danach erhalten Sie die Meldung aus Bild 4, die Sie darauf hinweist, dass eine Sperrung auf Datensatzebene mit der Verschlüsselung nicht kompatibel ist. Sollte eine Sperrung auf Datensatzebene für Sie unabdingbar sein, können Sie die Verschlüsselung nicht nutzen. Bestätigen Sie die Meldung, wird die Sperrung auf Datensatzebene in Zukunft ignoriert.

Hinweise zum Verschlüsseln

Bild 4: Hinweise zum Verschlüsseln

Soweit so gut – die Access-Datenbank ist nun verschlüsselt. Ab jetzt müssen Sie dieses Kennwort immer eingeben, wenn Sie die Datenbank öffnen. Testen Sie es einmal. Schließen Sie die Datenbank und öffnen Sie sie direkt wieder. Ohne Kennworteingabe ist der Zugriff auf die Daten nicht mehr möglich.

Dies gilt auch für das Access-Frontend, mit dem die Daten der nun verschlüsselten Datenbank verarbeitet werden. Die Daten stehen im Frontend nur nach Eingabe des Kennworts zur Verfügung.

Es gibt eine gute Nachricht. Sie müssen das Kennwort nicht jedes Mal eingeben. Der Einfachheit halber lässt sich das Kennwort beim Einbinden der Tabellen angeben und wird ab dann bei jedem Datenzugriff verwendet.

Leider ist der Tabellenverknüpfungs-Manager dabei keine Hilfe. Sie müssen die eingebundenen Tabellen aus dem Frontend entfernen und neu einbinden.

Öffnen Sie also das Frontend der Beispiel-Applikation WaWi und entfernen Sie die eingebundenen Tabellen. Anschließend navigieren Sie über Externe Daten|Neue Datenquelle|Aus Datenbank|Access zum Dialog Externe Daten. Dort wählen Sie über die Schaltfläche Durchsuchen die verschlüsselte Access-Datenbank aus und markieren die Option Erstellen Sie eine Verknüpfung zur Datenquelle, indem Sie eine verknüpfte Tabelle erstellen (siehe Bild 5).

Erstellen einer Verknüpfung

Bild 5: Erstellen einer Verknüpfung

Nach einem Klick auf OK werden Sie aufgefordert, das Datenbank-Kennwort einzugeben (siehe Bild 6). Anschließend wählen Sie alle Tabellen aus und binden diese per OK ein.

Abfrage des Kennworts

Bild 6: Abfrage des Kennworts

Die Eingabe des Kennworts ist eine einmalige Angelegenheit. Sie können dies einfach testen. Schließen Sie das Access-Frontend und öffnen Sie es direkt wieder. Ein Kennwort müssen Sie dabei nicht eingeben, auch nicht beim Öffnen einer Tabelle.

Allerdings ist das Kennwort für den Datenzugriff erforderlich. Es muss also in irgendeiner Art und Weise hinterlegt sein. Doch wo ist das Kennwort gespeichert

Um das herauszufinden, öffnen Sie mit der Tastenkombination Strg + G den Direktbereich im VBA-Editor. Hier führen Sie folgende Anweisung aus:

  CurrentDb.TableDefs("Ansprechpartner").Connect

Der Direktbereich zeigt Ihnen die Connect-Eigenschaft der eingebundenen Tabelle. Schon an zweiter Position ist das Kennwort zu sehen (siehe Bild 7). Es ist also kein Hexenwerk, das Datenbank-Kennwort einer verschlüsselten Datenbank zu ermitteln.

Kennwort ermitteln per Direktbereich

Bild 7: Kennwort ermitteln per Direktbereich

Das Auslesen des Kennworts lässt sich vermeiden, indem Sie auch das Access-Frontend verschlüsseln. Also öffnen Sie das Access-Frontend exklusiv, wechseln über das Menü Datei zu Informationen und klicken dort auf die Schaltfläche Mit Kennwort verschlüsseln.

Als Kennwort geben Sie natürlich nicht das gleiche wie beim Backend an. Verwenden Sie ein anderes sicheres Kennwort, das beim Frontend auch mehr als 19 Zeichen haben darf. Für dieses Beispiel kann es gerne wieder etwas Einfaches sein. Wie wäre es mit dem Kennwort sicher

Es folgt der bereits bekannte Hinweis, dass die Datensatzsperre in Zukunft ignoriert wird. Mit Bestätigen dieser Meldung ist nun auch das Frontend verschlüsselt. Dies können Sie testen, indem Sie das Frontend schließen und es direkt wieder öffnen. Als erstes wird von Ihnen die Eingabe des Kennworts verlangt.

Erst nach der Kennworteingabe lässt das Frontend den Zugriff auf das Startformular, die Access-Objekte und die eingebundenen Tabellen zu. Dieses Kennwort müssen Sie ab jetzt bei jedem Start des Frontends angeben. Aber nicht nur Sie, sondern jeder Anwender, der mit dieser Access-Applikation arbeitet.

Aus diesem Grund ist es wichtig, Frontend und Backend der Access-Applikation mit unterschiedlichen Kennwörtern zu verschlüsseln. Andernfalls wäre es für den Anwender recht einfach, das Access-Backend zu öffnen. Er muss dort nur das ihm bekannte Kennwort vom Frontend eingeben.

Ein sicheres Kennwort

Das von Ihnen gewählte Datenbank-Kennwort sollte den oben angeführten Regeln entsprechen. Allerdings muss es sich der Anwender auch merken können. Genau hier beginnt das Dilemma. Wer kann sich schon an ein komplexes Kennwort erinnern Die Lösung ist nicht selten eine Notiz am Bildschirm oder unter der Tastatur.

Dabei ist die Vergabe eines komplexen Kennworts recht einfach. Denken Sie sich einen Satz mit einer Zahl aus und nehmen Sie davon die Anfangsbuchstaben und die Satzzeichen. Fertig ist das sichere Kennwort.

Der Anwender merkt sich einen Satz wie Seit 2020 ist die Auftragsverarbeitung mit einem Kennwort geschützt! und gibt als Kennwort S2020idAmeKg! ein. Natürlich verwenden Sie bitte nicht dieses Beispiel als Ihr Kennwort. Denken Sie sich einen Satz aus, mit dem die Anwender etwas anfangen können.

Nimmt man es ganz genau, besitzt ein solch erstelltes Kennwort zwar einen hohen Sicherheitsgrad, es gilt dennoch als unsicher. Ein sicheres Kennwort ergibt sich aus der Zufälligkeit. Es sollte weder etwas mit der Applikation noch mit den Benutzern noch mit irgendetwas zu tun haben. Sichere Kennwörter erstellen Sie am besten mit einem Password-Generator.

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

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar