ich habe auf einem Server „SQL 2008 R2 Express“ installiert und eine Datenbank „Inventar“ angelegt. Tabellen wurden angelegt. Ich habe einen View, der die Benutzerdaten aus dem Active Directory abfragt, mit dieser SQL-Abfrage erstellt´:
SELECT Name AS NAME_ADUSER,
FROM OPENQUERY(ADSI,
‚SELECT Name,
FROM ‚‚LDAP:/// OU=Benutzer,DC=,DC=de‘‘
WHERE objectCategory = ‚‚Person‘‘ AND objectClass = ‚‚user‘‘‘)
AS TABLE_ADUSER
ORDER BY NAME_ADUSER
Auf dem Server unter SQL funktionert die Abfrage auch wunderbar.
Access 2003 habe ich über den Verbindungsserver ADSI angebunden. Das funktioniert und die angelegten Tabellen bekomme ich angezeigt und kann sie auch befüllen.
Nur beim View mit der LDAP-Abfrage kommt die Fehlermeldung:
Fehler beim Vorbereiten der SELECT Name, FROM 'LDAP://…-Abfrage zur Ausführung für den OLE DB-Anbieter ‚ADsDSOObject‘ für den Verbindungserver ‚ADSI‘.
Was mach ich verkehrt?
Oder funzt ACCESS 2003 nicht mit SQL 2008?
ich habe unter SQL den Verbindungsserver ADSI mittels des Befehls EXEC sp_addlinkedserver ‚ADSI‘, ‚‘, ‚ADSDSOObject‘ eingerichtet.
Diese Verbindung zum Domänencontroller funktioniert und Daten können aus dem Active Directory ausgelesen werden.
Unter Access habe ich mich auf die bestehende SQL-DAtenbank verbunden. Die Access-Datei hat die Dateierweiterung *.adp - ist eine Access Projekt Datei. Die angelegten Tabellen werden mir in Access angezeigt, der unter SQL erstellt View wird mit der beschriebenen Fehlermeldung nicht angezeigt.
Ich frage das AD ja aus SQL ab. Die Daten stehen im dann im View.
Mit Access habe ich dann einen ODBC-Aufruf der Tabellen und Sichten (aka View aka Abfrage).
Nach meinem Verständnis liegen die Daten in der SQL-Datenbank und werden von Access nur angezeigt.
Ich hab jetzt Office 2010 mal testweise installiert, da ich dachte, dass Office 2003 zu alt für SQL 2008 R2 sei. Aber auch da bekomme ich die Fehlermeldung. An der Version liegt es anscheinend schon mal nicht.
Wenn man sich mit ASPI anmeldet, wird der Anmelde-Token an das AD durchgereicht und das funktioniert; meldet man sich über Access per SQL Account an den SQL Server an, ist man kein authentifizierter Windows User und der Zugriff auf die AD funktioniert dann aus Sicherheitsgründen nicht mehr.
In den Sicherheitseinstellungen des Verbindungsserver kann man konfigurieren, das bestimmte (oder alle) SQL Accounts auf bestimmte (einen) Windows Accounts umgemappt werden, damit der Zugriff dann doch funktionieren kann.