Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MS Access & ADO mit User & PW (Benutzerverwaltung) (https://www.delphipraxis.net/129975-ms-access-ado-mit-user-pw-benutzerverwaltung.html)

rollstuhlfahrer 28. Feb 2009 22:40

Datenbank: MS Access • Version: 2003 • Zugriff über: TADOConnection

MS Access & ADO mit User & PW (Benutzerverwaltung)
 
Liste der Anhänge anzeigen (Anzahl: 1)
HI @all,

ich versuche, auf meine Access-Datenbank zuzugreifen, in der ich mehrere User mit Passwort festgelegt habe. Nun möchte ich, dass in einem Delphi-Programm dieses per ADO auf die Datenbank zugreift.
Habe ich nur einen einfache Datenbank (ohne Schutzmechanismen, ...) dann geht das ohne Probleme. Auch mit einem Datenbankpasswort komme ich zurecht. Wenn ich aber jetzt verschiedene Benutzer erstelle, kann ich mich nur noch per Access direkt an der Datenbank anmelden. In Delph erhalte ich folgenden Fehler:
Code:
---------------------------
Microsoft Datenverknüpfungsfehler
---------------------------
Fehler beim Testen der Verbindung durch einen Fehler beim Initialisieren des Providers. Die Anwendung kann nicht gestartet werden. Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von einem anderen Benutzer geöffnet.
---------------------------
OK  
---------------------------
Und damit kann ich eigentlich nichts anfangen, da
a) der Provider geht (andere Access-DB geht ja auch),
b) die Informationsdatei für die Arbeitsgruppe existiert (Access kann sich ja wohl nicht aus heiterem Himmel irgendwo anmelden und
c) ich Access geschlossen habe, sodass man die Datenbank eigentlich Exklusiv öffnen können sollte.

Was mache ich falsch oder habe ich nicht beachtet?
Code:
ConnectionString:
Provider=Microsoft.Jet.OLEDB.4.0;Password=Passwort;User ID=LehrerUser;Data Source=C:\daten\daten.mdb;Persist Security Info=True
Bernhard

sx2008 1. Mär 2009 05:37

Re: MS Access & ADO mit User & PW (Benutzerverwaltun
 
Man kann in MS Access die Arbeitsgruppe global mit dem "Workgroup Manager" einstellen,
das interessiert nur aber Access und nicht die darunterliegende Jet Engine.
Daher musst du die Arbeitsgruppendatei mit in der Connection angeben.
Dazu gibt es das Property Jet OLEDB:System database.
Code:
Provider=Microsoft.Jet.OLEDB.4.0;Password=Passwort;User ID=LehrerUser;Data Source=C:\daten\daten.mdb;Persist Security Info=True;Jet OLEDB:System database=C:\daten\daten.mdw
Achja, du solltest dir einen weiteren User mit Adminrechten anlegen, damit du nie in die Situation kommst die Kontrolle über die Rechte zu verlieren.

rollstuhlfahrer 1. Mär 2009 07:56

Re: MS Access & ADO mit User & PW (Benutzerverwaltun
 
HI sx2008,

danke für den Tipp, es funktioniert. Zu dem AdminUser: ich hab schon einen erstellt, der auf die Datenbank zugreifen kann.
EDIT: Allerdings hab ich mich mit Access jetzt wohl selbst ausgesperrt. Ich hab als noch die gleiche Datenbank, komme aber über Access nicht mehr rein, da das Feld ANMELDEN nicht mehr angezeigt wird. Wie krieg ich das wieder herbei?

Bernhard

sx2008 1. Mär 2009 09:32

Re: MS Access & ADO mit User & PW (Benutzerverwaltun
 
Zitat:

Zitat von rollstuhlfahrer
Allerdings hab ich mich mit Access jetzt wohl selbst ausgesperrt. Ich hab als noch die gleiche Datenbank, komme aber über Access nicht mehr rein, da das Feld ANMELDEN nicht mehr angezeigt wird. Wie krieg ich das wieder herbei?

Irgendwo auf deinem Rechner liegt eine system.mdw (wahrscheinlich unter C:\programme\Microsoft Office\...).
Diese Datei musst du wieder mit dem Workgroup Manager einstellen.
Dann kommst du allerdings nicht mehr mit Access auf deine daten.mdb.

Das ist ziemlich blöd gemacht von Microsoft.
Aber du kannst dir eine Verknüpfung anlegen und die MSACCESS.exe mit dem Schalter /wrkgrp aufrufen.
Beim Office 2007 gibt's den Workgroup Manager nicht mehr. :gruebel:
Dort liegt die system.mdw dann userbezogen im Verzeichnis ...\AppData\.
Einfach blöd, dass Datenbank und Rechtdatenbank in zwei verschiedenen Dateien liegen.
Wenn die Workgroupdatei, mit der eine Datenbank erstellt wurde verloren geht, dann verliert man den Zugriff.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz