Einführung in Sperrdateien (laccdb und ldb) in Access

Einführung

Die Datei „.laccdb“ oder „.ldb“ spielt eine wichtige Rolle im Mehrbenutzerschema des Microsoft Access-Datenbankmoduls. Die Datei „.laccdb“ oder „.ldb“ wird verwendet, um zu bestimmen, welche Datensätze in einer freigegebenen Datenbank gesperrt sind und von wem. Die Datei „.laccdb“ wird mit ACCDB-Datenbanken und die Datei „.ldb“ mit „.mdb“-Datenbanken verwendet. Sowohl die Datei „.laccdb“ als auch die Datei „.ldb“ werden häufig als Sperrdateien bezeichnet.

Automatisches Erstellen und Löschen von Sperrdateien

Für jede Datenbank, die für die gemeinsame Verwendung geöffnet wird, wird eine „.laccdb“- oder „.ldb“-Datei erstellt, um Computer- und Sicherheitsnamen zu speichern und erweiterte Bytebereichssperren zu platzieren. Die Sperrdatei hat immer denselben Namen wie die geöffnete Datenbank und befindet sich im selben Ordner wie die geöffnete Datenbank. Wenn Sie z. B. die Northwind.accdb-Beispieldatenbank (für die gemeinsame Verwendung) in C:\users\<username>\documents\ öffnen, wird automatisch eine Datei mit dem Namen „Northwind.laccdb“ im selben Dokumentordner erstellt.

Wenn der letzte Benutzer eine freigegebene Datenbank schließt, wird die Sperrdatei gelöscht. Die einzigen Ausnahmen sind, wenn ein Benutzer nicht über Löschrechte verfügt oder wenn die Datenbank als beschädigt gekennzeichnet ist. Dann wird die Sperrdatei nicht gelöscht, da sie Informationen darüber enthält, wer die Datenbank zu dem Zeitpunkt verwendet hat, zu dem die Datenbank als beschädigt markiert wurde.

Erforderliche Ordnerberechtigungen

Wenn Sie eine Datenbank freigeben möchten, sollte sich die Datenbankdatei in einem Ordner befinden, in dem Benutzer Über Lese-, Schreib-, Erstellungs- und Löschberechtigungen verfügen. Auch wenn Benutzer über unterschiedliche Dateiberechtigungen verfügen sollen (z. B. einige nur über schreibgeschützten Zugriff und einige über Lese-/Schreibzugriff), müssen alle Benutzer, die eine Datenbank freigeben, über Lese-, Schreib- und Erstellungsberechtigungen für den Ordner verfügen. Sie können jedoch der ACCDB- oder MDB-Datei schreibgeschützte Berechtigungen für einzelne Benutzer zuweisen und gleichzeitig vollständige Berechtigungen für den Ordner zulassen.

Hinweis

Wenn ein Benutzer eine Datenbank mit exklusivem Zugriff öffnet (indem er auf den Pfeil rechts neben der Schaltfläche Öffnen klickt und dann auf Exklusiv öffnen klickt), wird die Datensatzsperre nicht verwendet. Daher versucht Microsoft Access nicht, eine Sperrdatei zu öffnen oder zu erstellen. Wenn die Datenbank immer exklusiv geöffnet wird, muss ein Benutzer nur über Lese- und Schreibberechtigungen für den Ordner verfügen.

Der Inhalt der Sperrdatei

Für jede Person, die eine freigegebene Datenbank öffnet, schreibt das Access-Datenbankmodul einen Eintrag in die Datei „.laccdb“ oder „.ldb“ der Datenbank. Die Größe jedes Eintrags beträgt 64 Bytes. Die ersten 32 Bytes enthalten den Computernamen (z. B. JohnDoe). Die zweiten 32 Bytes enthalten den Sicherheitsnamen (z. B. Administrator). Die maximale Anzahl gleichzeitiger Benutzer, die das Access-Datenbankmodul unterstützt, ist 255. Daher ist die Größe der Sperrdatei nie größer als 16 KB.

Hinweis

Obwohl eine Dateiserverlösung bis zu 255 gleichzeitige Benutzer unterstützen kann, empfiehlt es sich, nicht mehr als 25 bis 50 Benutzer zu unterstützen, wenn die Benutzer Ihrer Lösung häufig Daten hinzufügen und Daten aktualisieren. Weitere Informationen finden Sie in Kapitel 1: Grundlegendes zur Client-/Serverentwicklung in Microsoft Access 2000.

Wenn ein Benutzer eine freigegebene Datenbank schließt, wird der Benutzereintrag nicht aus der Sperrdatei entfernt. Der Benutzereintrag kann jedoch überschrieben werden, wenn ein anderer Benutzer die Datenbank öffnet. Dies bedeutet, dass Sie die Sperrdatei nicht allein verwenden können, um zu bestimmen, wer die Datenbank derzeit verwendet.

Verwendung der Sperrdatei

Das Access-Datenbankmodul verwendet die Sperrdateiinformationen, um zu verhindern, dass Benutzer Daten auf Seiten oder Datensätze schreiben, die andere Benutzer gesperrt haben, und um zu bestimmen, wer andere Seiten oder Datensätze gesperrt hat. Wenn das Access-Datenbankmodul einen Sperrkonflikt mit einem anderen Benutzer erkennt, liest es die Sperrdatei, um den Computer- und den Sicherheitsnamen des Benutzers abzurufen, für den die Datei oder der Datensatz gesperrt ist.

In den meisten Sperrkonfliktsituationen erhalten Sie eine generische „Schreibkonflikt“-Nachricht, mit der Sie den Datensatz speichern, in die Zwischenablage kopieren oder die von Ihnen vorgenommenen Änderungen ablegen können. Unter gewissen Umständen wird jedoch die folgende Fehlermeldung angezeigt:

Tabelle <Tabellenname> konnte nicht gesperrt werden; wird derzeit von Benutzer <Sicherheitsname> auf Computer <Computername> verwendet.

Hinweis

Der Status der Informationen in der Sperrdatei wirkt sich nicht auf den Status der Datenbank aus. Wenn eine Sperrdatei beschädigt wird, sollte alles in der Datenbank weiterhin ordnungsgemäß funktionieren. Es kann jedoch vorkommen, dass textverschlüsselter Text anstelle von Benutzernamen in Sperrkonfliktmeldungen angezeigt wird.

Mit Microsoft Visual Basic for Applications können Sie eine Liste der Benutzer ausgeben, die bei einer bestimmten Datenbank angemeldet sind. Weitere Informationen hierzu und Beispielcode finden Sie unter Ermitteln, wer mit Microsoft Jet UserRoster in Access bei einer Datenbank angemeldet ist.