Fehler 3051 bei Zugriff auf Access2000 DB

02/06/2009 - 01:44 von Gerrit Kuhlendahl | Report spam
Moinsen!

Es ist einfach zu lange her - ich weiß, da war mal was,
aber ich bekomm's nicht mehr zusammen... :-(

Folgendes Problem:

Wir haben bei einem Kunden eine alte Anwendung laufen,
die per VB6 auf eine Access 2k-Datenbank zugreift.

Der Zugriff erfolgt über mehrere Konten, will sagen:

Ein Benutzer meldet sich (mit sehr geringen Rechten)
auf dem Rechner an und startet das Programm. Das Programm
selbst meldet sich dann unter einem anderen Namen (ein
speziell eingerichtetes Arbeitskonto) via
"ImpersonateLogedOnUser" an und greift dann auf die Datenbank
zu.

Das klappt auf den alten Rechnern (W2K - SP4) auch ganz prima.
Nun sollte ein neuer Rechner (ebenfalls W2K - SP4) aufgesetzt
werden. Alles soweit installiert, Konten eingerichtet, alles
bestens.

Der Zugriff mit dem Programm auf die Datenbank über ein
Admin-Konto klappt bestens.

Der Zugriff mit dem Programm auf die Datenbank klappt auch,
wenn man sich direkt mit dem spez. Arbeitskonto auf dem Rechner
anmeldet.

Wenn sich jedoch das Programm selbst "ummeldet", kommt die
Fehlermeldung 3051 (fehlende Berechtigung etc.)

Die entsprechenden Zugriffsrechte auf das entsprechende Daten-
bankverzeichnis sind gesetzt, die Sicherheitsrichtlinien sind
entsprechend eingestellt und das Logfile zeigt auch eindeutig,
daß die Ummeldung auf das Arbeitskonto einwandfrei geklappt hat.

Ich hab da aber noch im Hinterkopf, daß das Anmeldekonto als auch
das Arbeitskonto noch für DAO auf irgendwelche System- und
Benutzerkonten bzw. -Verzeichnisse Zugriff haben müssen.

Kann mir da jemand auf die Sprünge helfen...?

Schon mal besten Dank im Vorwege

Viele Grüße

Gerrit



-
KUH-SOFT - Die Software von glücklichen Programmierern

Am Sportplatz 4 - D 25563 Wrist
eMail: PostAn [AT] kuh-soft.de
Home: http://www.kuh-soft.de
 

Lesen sie die antworten

#1 Peter Götz
02/06/2009 - 07:56 | Warnen spam
Hallo Gerrit,

Es ist einfach zu lange her -



Sind ja schon fast Jahrhunderte,
seit man das letzte Mal was von Dir gehört hat. ;-)


Wir haben bei einem Kunden eine alte Anwendung laufen,
die per VB6 auf eine Access 2k-Datenbank zugreift.

Der Zugriff erfolgt über mehrere Konten, will sagen:

Ein Benutzer meldet sich (mit sehr geringen Rechten)
auf dem Rechner an und startet das Programm. Das
Programm selbst meldet sich dann unter einem anderen
Namen (ein speziell eingerichtetes Arbeitskonto) via
"ImpersonateLogedOnUser" an und greift dann auf die
Datenbank zu.



Wie ist die genaue Reihenfolge?

1.) Programmstart,
2.) Impersonation,
3.) Start der (DAO) DB-Routinen inkl. Erstellung
des Workspace-Objektes,
4.) DB-Zugriffe


Das klappt auf den alten Rechnern (W2K - SP4) auch
ganz prima.
Nun sollte ein neuer Rechner (ebenfalls W2K - SP4)
aufgesetzt werden. Alles soweit installiert, Konten
eingerichtet, alles bestens.

Der Zugriff mit dem Programm auf die Datenbank über ein
Admin-Konto klappt bestens.

Der Zugriff mit dem Programm auf die Datenbank klappt
auch, wenn man sich direkt mit dem spez. Arbeitskonto
auf dem Rechner anmeldet.

Wenn sich jedoch das Programm selbst "ummeldet",



Mit Impersonation meldet sich nicht das Programm um,
sondern nur der betr. Thread.

kommt die Fehlermeldung 3051 (fehlende Berechtigung etc.)



Wenn alles im selben Thread ablàuft, sollte nach der
Impersonation auch alles wie gewünscht laufen.


Die entsprechenden Zugriffsrechte auf das entsprechende
Datenbankverzeichnis sind gesetzt,



Würde ich nochmal genau prüfen.

die Sicherheitsrichtlinien sind entsprechend eingestellt



Auch hier nochmal genau prüfen.

und das Logfile zeigt auch eindeutig,
daß die Ummeldung auf das Arbeitskonto
einwandfrei geklappt hat.



Welches Logfile und wie genau sieht die Information
darin aus?

Ich hab da aber noch im Hinterkopf, daß das
Anmeldekonto als auch das Arbeitskonto noch
für DAO auf irgendwelche System- und
Benutzerkonten bzw. -Verzeichnisse Zugriff haben
müssen.



Evtl. auf den Pfad einer zur *.mdb gehörenden System.mdw.


Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen