WICHTIG: bevor eine Einschränkung durch Benutzerkonten etc. erfolgt, sollte man die offene Original-MDB gut sichern!!!
Eine Access-Anwendung startet immer mit drei Dateien:
msaccess.exe
anwendung.mdw
anwendung.mdb
Lassen wir mal die msaccess.exe ausser acht.
In der MDW datei (Standard ist system.mdw) sind die Benutzer, mögliche Kennwörter und die persönliche ID (SID) des Benutzers gespeichert. Zusätzlich natürlich die Benutzerguppen.
In der Standard MDW Datei gibt es immer 2 vordefinierte Benutzer und 2 vordefinierte Gruppen (Administrator, Benutzer)
Diese Benutzer und Gruppen haben in allen neu angelegten *.mdw Dateien die gleiche SID.
Wenn msaccess.exe startet, dann startet Access immer mit dem „Administrator“ Benutzer als Default. Nur wenn der Administrator in der benutzten MDW ein Kennwort hat, dann erscheint der Dialog für die Benutzer/Password Eingabe.
Wenn du eine neue MDB erzeugst werden den Objekten (Tabellen, Forms, Berichte …) die Rechte zugewiesen. Als Standard gehört die MDB und die Objekte dem Administrator deiner MDW Datei. Da aber die SID des Administrators auf allen Access-Systemen der Welt identisch sind, kann man die ungeschützte Datenbank auch überall öffnen und verwenden.
Wenn du die Datenbank nun schützen willst must du verhindern, dass der Administrator überhaupt Rechte an der Datenbank hat.
Dazu erstellt man eine eigene MDW Datei und stellt zB. im Workgroup-Manager das so ein, dass Access nun mit deiner MDW startet. Diese MDW ist zu diesem Zeitpunkt noch völlig identisch wie die Standard MDW.
Jetzt legst du eine Benutzer an (zB ‚Chef‘ mit ID ‚chef01‘) in Benutzer+Gruppenkonten. Dieser Benutzer ‚Chef‘ wird nun der Gruppe ‚Administratoren‘ hinzugefügt. Gleichzeitig entfernt man den Benutzer ‚Administrator‘ aus der Gruppe ‚Administratoren‘ und gibt danach dem Benutzer ‚Administrator‘ ein beliebiges Kennwort. Dadurch wird Access beim Öffnen der nachsten MDB Datei den Userdialog aufpoppen lassen.
Damit alleine hast du jetzt noch nichts erreicht, da der Benutzer ‚Administrator‘ immer noch alle Rechte an deinen Objekten deiner MDB hat. Ziel ist aber, dass weder der Benutzer ‚Administrator‘ noch der Benutzer ‚Benutzer‘ irgendwelche Rechte in deiner MDB hat. (Wie erwähnt, dies sind Standard-Benutzer auf allen Access-Systemen der Welt)
Dieses zu ändern ist der nächste Schritt. Jetzt wird deine MDB geöffnet. Access fragt nach User und Kennwort. Du gibst ein ‚Chef‘ und das Kennwort für ‚Chef‘ wenn du eines vergeben hast. Ansonsten wird nichts bei Kennwort eingeben.
Nun gibt es den Menüpunkt: Benutzer+Gruppenberechtigungen
Dort kannst du festlegen welcher Benutzer aus dein MDW Datei, welche Rechte an den Objekten deiner MDB hat. Als erstes gehst du zum Reiter „Besitzer ändern“
Dort änderst du den Besitzer (owner) der Objekte von ‚Administrator‘ zu ‚Chef‘. Denn der Besitzer darf sich auch die Rechte zurückholen. (wie immer im Leben)
Dann gehst du auf den Reiter ‚Berechtigungen‘ und nimmst dem Benutzer ‚Administrator‘ alle Rechte auf die Objekte und gibst sie im Gegenzug dem ‚Chef‘. Du kannst die Rechte der Objekte natürlich auch über die Gruppen regeln.
Jetzt da der Benutzer ‚Administrator‘ überhaupt keine Rechte mehr an den Objekten deiner MDB hat, hast du die MDB geschützt.
Wenn jetzt jemand versucht deine MDB mit der Standard MDW zu öffnen, dann ist er der Benutzer ‚Administrator‘. Der darf nun aber nichts mehr machen an deiner MDB.
Ziel erreicht.
Ein paar Details fehlen zwar noch, aber im Grunde ist es das.
Vielen Dank an Quaser für diese Erklärung.