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

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2010.

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 Daten auch unter Access 2007 mit dem Access-Sicherheitssystem schützen.

Techniken

Sicherheitssytem

Voraussetzungen

Access 2000 und höher

Beispieldateien

Datensicherheit.mdb und weitere

Shortlink

718

Sicherheitssystem in FE/BE unter Access 2007

André Minhorst, Duisburg

Unter Access 2003 war die Welt für viele Entwickler noch in Ordnung: Sein geistiges Eigentum sicherte der Klick auf »MDE erstellen«, und für die Sicherheit der Daten sorgte das integrierte Sicherheitssystem. Mit letzterem ist seit Access 2007 offiziell Schluss: Das Sicherheitssystem für Tabellen und sonstige Objekte und die Verwaltung von Benutzern und Benutzergruppen ist obsolet. Was tun, wenn man keinen SQL-Server zur Hand hat, die Daten aber trotzdem einigermaßen schützen möchte?

Einigermaßen deshalb, weil das Sicherheitssystem so sicher nun auch nicht ist - mit nur wenig krimineller Energie und etwas mehr Know-how kommt man auch an geschützte Daten heran. Für Otto Normalverbraucher reicht es aber völlig aus, wenn er ein paar Benutzergruppen unterschiedliche Zugriffsrechte zuweisen kann - ohne gleich zu härten (und kostspieligeren) Waffen wie etwa dem Microsoft SQL Server oder MySQL zu greifen (meist spielen hier sogar weniger die Kosten, als vielmehr die Restriktionen durch den Auftraggeber eine Rolle).

Nun haben wir bereit herausgefunden, dass sich das Sicherheitssystem in einem gewissen Rahmen durchaus unter Access 2007 einsetzen lässt (siehe Beitrag Access 2007: Sicherheitssystem einsetzen, www.access-im-unternehmen.de/616).

Während wir dort in einer reinen Access 2007-Konstellation ohne die eingebauten Dialoge zum Verwalten von Benutzern und Benutzergruppen sowie den Berechtigungen auskommen mussten, stellen wir nun eine Möglichkeit vor, auch dieses noch einzusetzen.

Der Clou ist, dass sich die entsprechenden Dialoge auch unter Access 2007 noch zum Arbeiten bewegen lassen.

Um dies zu bewerkstelligen, gehen Sie folgendermaßen vor:

  • Legen Sie eine neue Datenbank im Format von Access 2003 (oder älter) an.
  • Wechseln Sie zum Ribbon-Tab Datenbanktools und lassen Sie den Blick nach rechts schwenken - dort finden Sie alles, was zum Einrichten des Sicherheitssystems notwendig ist (s. Abb. 1).
pic001.png

Abb. 1: Für ältere Datenbanken steht das Sicherheitssystem auch unter Access 2007 noch bereit.

Wie aber soll uns diese Erkenntnis weiterhelfen? Nun: Wenn Sie nicht auf die speziellen Neuigkeiten von Access 2007 bezogen auf den Tabellenentwurf (hier speziell Anlagefelder und mehrwertige Felder) angewiesen sind, können Sie unter Access 2007 bequem mit einer .mdb-Datei arbeiten und diese ganz normal mit dem Sicherheitssysten schützen.

Die übrigen Features der Benutzeroberfläche können Sie auch mit .mdb-Datenbanken verwenden. In der Beispieldatenbank zu diesem Beitrag finden Sie beispielsweise das Formular frmPersonen, dessen Feld Bemerkungen an allen vier Seiten verankert ist und sich der Größe des Formulars anpasst.

Sicherheitssystem in Frontend und Backend

Was aber geschieht, wenn Sie dennoch unbedingt beispielsweise die Anlagefelder von Access 2007 benötigen, diese aber nicht unbedingt schützen müssen - beispielsweise, weil diese nur ein paar Bilddateien zum Bevölkern von Schaltflächen oder TreeView-Steuerelementen enthalten, aber keine sicherheitsrelevanten Daten?

Dann teilen Sie die Datenbank einfach auf: Lagern Sie die schützenswerten Daten in ein .mdb-Backend aus und greifen Sie von einem .accdb-Frontend auf diese Daten zu.

Aber es ergeben sich noch mehr Fragen:

  • Wie muss ich die Verknüpfung gestalten, damit Access die Arbeitsgruppeninformationsdatei mit dem Backend und nicht mit dem Frontend verwendet?
  • Wie melden sich Benutzer an, wenn das Frontend eine .accdb-Datei ist, die das Sicherheitssystem ja gar nicht unterstützt?

Probieren wir dies doch einfach einmal aus. Starten Sie zunächst mit folgender Anweisung im Direktfenster den Arbeitsgruppenadministrator und erstellen Sie dort eine Arbeitsgruppe für unseren Versuch (im Beispiel Datensicherheit.mdb):

RunCommand acCmdWorkgroupAdministrator

Bedenken Sie: Ab jetzt werden alle Schritte im Kontext dieser Arbeitsgruppendatei durchgeführt. Wenn Sie den vorherigen Zustand wiederherstellen möchten, müssen Sie sich der zuvor eingestellten Arbeitsgruppeninformationsdatei anschließen, also etwa der unter

Nun schützen Sie durch folgende Schritte die .mdb-Datenbank:

  • Öffnen Sie den Dialog Benutzer- und Gruppenkonten über den Ribboneintrag Datenbanktools|Datenbanktools|Benutzer und Berechtigungen|Benutzer und Gruppenkonten...
  • Ändern Sie auf der Registerseite Anmeldungskennwort ändern das Kennwort in aiu.
  • Schließen und öffnen Sie Access und melden Sie sich als Benutzer Admin und dem neuen Kennwort an.
  • Legen Sie mit dem gleichen Dialog von oben einen neuen Benutzer an (zum Beispiel Minhorst), vergeben Sie gegebenenfalls ein Kennwort und fügen Sie diesem der Gruppe Administratoren hinzu.
  • Schließen Sie Access erneut, melden Sie sich als der neue Benutzer an und legen Sie auch für diesen ein Kennwort an (der Einfachheit halber auch hier aiu).
  • Erstellen Sie eine neue Datenbank (wiederum eine .mdb-Datei) namens Datensicherheit_Geschuetzt.mdb und importieren Sie alle Objekte der zuvor bearbeiteten Datenbank hinein, um den neuen Benutzer zum Besitzer dieser Objekte zu machen.
  • Entfernen Sie nun den Benutzer Administrator aus der Gruppe Administratoren.
  • Öffnen Sie den Dialog Benutzer und Gruppenberechtigungen über den Ribboneintrag Datenbanktools|Datenbanktools|Benutzer und Berechtigungen|Benutzer und Gruppenberechtigungen...
  • Aktivieren Sie die Gruppenansicht und entfernen Sie alle Berechtigungen der Gruppe Benutzer für alle Objekte. Behalten Sie lediglich die Berechtigung Daten lesen für eine Tabelle (hier tblPersonen) und die Berechtigungen Öffnen für Datenbank bei. Normalerweise würden Sie hier alle Berechtigungen entziehen, weil Benutzer, die sich ohne die richtige Arbeitsgruppeninformationsdatei anmelden, dann keine Zugriffsrechte mehr auf die Datenbank besitzen. Aber wir wollen ja nur das Verhalten für eine Frontend/Backend-Lösung mit einem Access 2007-Frontend testen.
  • Entfernen Sie das Kennwort für den Benutzer Administrator, damit sich jeder ohne Angabe eines Kennwortes anmelden kann.

Abschließend halten wir fest: Otto Normalverbraucher kann die Datenbankanwendung nun öffnen, aber den Inhalt der Tabelle tblPersonen nur lesen (er wird als Benutzer Administrator der Gruppe Benutzer angemeldet, der nur diese stark eingeschränkten Berechtigungen hat). Der neue Benutzer Minhorst kann als Administrator alles, muss sich aber mit Kennwort anmelden.

Test mit Access 2007-Frontend

Erstellen wir nun eine neue Access 2007-Datenbank namens Datensicherheit_Frontend.accdb. Dann verknüpfen Sie die Tabelle tblPersonen mit dieser Datenbank und öffnen sie. Wie Abb. 2 zeigt, führt der Versuch, die Daten dieser Tabelle zu ändern, zu nichts, und auch das Anlegen neuer Datensätze ist nicht möglich.

pic002.png

Abb. 2: Der Zugriff auf das Backend wird wie gewünschte eingeschränkt.

Bis hierhin funktioniert das allein für das Backend aktivierte Sicherheitssystem also: Normale Benutzer dürfen nur das tun, was wir ihnen erlaubt haben.

Steht noch der Test aus, ob wir die Anwendung per Dateiverknüpfung im Kontext des soeben eingerichteten Administrator-Kontos öffnen können. Dafür legen wir eine Verknüpfung mit folgendem Inhalt an (ich verwende dazu immer eine einfache Textdatei mit der Endung .bat):

"c:\Programme\Microsoft Office\Office12\MSAccess.exe" Datensicherheit_Frontend.accdb /wrkgrp Datensicherheit.mdw /user Minhorst /pwd aiu

Und siehe da: Nach dem Aufrufen dieser Verknüpfung wird das Frontend mit eingebundenem Backend geöffnet und wir können mit genau den Rechten zugreifen, die wir dem Benutzer Minhorst eingeräumt haben.

Sofern keine wirklich relevanten Daten zu schützen sind, sondern nur der Zugriff normaler Benutzer verhindert werden soll, können Sie also auch unter Access 2007 mit dem Sicherheitssystem von Access 2003 arbeiten.

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:

Download

Download

Die .zip-Datei enthält folgende Dateien:

Datensicherheit_Frontend.accdb

Datensicherheit.mdw

Datensicherheit.mdb

Datensicherheit.bat

Datensicherheit_Geschuetzt.mdb

Beispieldateien downloaden

© 2003-2015 André Minhorst Alle Rechte vorbehalten.