Discussion:
SQL Abfrage von Active Directory nur lokal möglich
(zu alt für eine Antwort)
uwe
2007-06-19 08:58:54 UTC
Permalink
Hallo zusammen,

Ich habe auf einem Windowsserver 2003 SP 2 eine SQL-Express 2005
Datenbank ( inkl. alle aktueller SP und Patches, alles deutsch) auf
der entsprechend der Hilfe einen Verbindungsserver "ADSI" und eine
Sicht eingerichtet.
Einrichutng Verbindungsserver
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5',
'ADSDSOObject', 'adsdatasource'
GO

Einrichtung Sicht
CREATE VIEW ADNutzer
AS
SELECT [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
'SELECT Name, SN, ST
FROM ''LDAP://ADSISrv/ DC=meine,DC=domäne''
WHERE objectCategory = ''Person'' AND
objectClass = ''contact''')
GO
SELECT * FROM ADNutzer
Schaut man sich diese Sicht lokal auf dem SQL Server per Microsoft SQL
Server Management Studio Express an, ist alles wunderbar in Ordnung.
Versucht man jedoch per Netzwerk auf diese Sicht zuzugreifen, erhält
man immer eine herrlich nichtssagende Fehlermeldung "Abfrage kann für
den den OLE DB-Anbieter "ADSDSObject" für den Verbindungsserver "ADSI"
nicht ausgeführt werden". Die dierkte SQL Abfrage meldet noch "Meldung
7321, Ebene 16, Status 2...". Dabei ist es völlig egal, ob man
versucht diese Abfrage von einem Windows XP oder 2003'er Server, ob
mittels Visual Studio 2005 oder mittels Server Management Studio
durchzuführen. Der Nutzer, mit dem ich dies getestet habe ist
natürlich immer der gleiche - ein AD Nutzer, der gleichzeitig dbo ist.
Authentifizierung ist auf "Windows" eingestellt, Remotezugriff
erlaubt, als Protokolle sind Shared Memory, Named Pipes und TCIP/IP
aktiviert. Weiß jemand ob da noch irgendwo Sicherheitseinstellungen
o.ä. anzupassen sind oder gibt es eine andere Erklärung für dieses
Problem?
Besten Dank schon jetzt.
Gruß
Uwe
Elmar Boye
2007-06-20 15:54:25 UTC
Permalink
Hallo Uwe,
Post by uwe
Ich habe auf einem Windowsserver 2003 SP 2 eine SQL-Express 2005
Datenbank ( inkl. alle aktueller SP und Patches, alles deutsch) auf
der entsprechend der Hilfe einen Verbindungsserver "ADSI" und eine
Sicht eingerichtet.
Einrichutng Verbindungsserver
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5',
'ADSDSOObject', 'adsdatasource'
GO
Und Du solltest entsprechende Remote Logins via sp_addlinkedsrvlogin
einrichten bzw. über das Management Studio.
Post by uwe
Versucht man jedoch per Netzwerk auf diese Sicht zuzugreifen, erhält
man immer eine herrlich nichtssagende Fehlermeldung "Abfrage kann für
den den OLE DB-Anbieter "ADSDSObject" für den Verbindungsserver "ADSI"
nicht ausgeführt werden".
Denn vermutlich werden die Berechtigungen des Benutzerkontext nicht
ausreichen, um auf das Active Directory zuzugreifen...
Post by uwe
Der Nutzer, mit dem ich dies getestet habe ist
natürlich immer der gleiche - ein AD Nutzer, der gleichzeitig dbo ist.
... irgendwie dürfte das nicht der Fall sein.

Nicht zuletzt: Läuft SQL Server Express unter einem Domänen Konto?

Gruss
Elmar
uwe
2007-06-26 09:32:18 UTC
Permalink
Post by Elmar Boye
Hallo Uwe,
Post by uwe
Ich habe auf einem Windowsserver 2003 SP 2 eine SQL-Express 2005
Datenbank ( inkl. alle aktueller SP und Patches, alles deutsch) auf
der entsprechend der Hilfe einen Verbindungsserver "ADSI" und eine
Sicht eingerichtet.
Einrichutng Verbindungsserver
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5',
'ADSDSOObject', 'adsdatasource'
GO
Und Du solltest entsprechende Remote Logins via sp_addlinkedsrvlogin
einrichten bzw. über das Management Studio.
Post by uwe
Versucht man jedoch per Netzwerk auf diese Sicht zuzugreifen, erhält
man immer eine herrlich nichtssagende Fehlermeldung "Abfrage kann für
den den OLE DB-Anbieter "ADSDSObject" für den Verbindungsserver "ADSI"
nicht ausgeführt werden".
Denn vermutlich werden die Berechtigungen des Benutzerkontext nicht
ausreichen, um auf das Active Directory zuzugreifen...
Post by uwe
Der Nutzer, mit dem ich dies getestet habe ist
natürlich immer der gleiche - ein AD Nutzer, der gleichzeitig dbo ist.
... irgendwie dürfte das nicht der Fall sein.
Nicht zuletzt: Läuft SQL Server Express unter einem Domänen Konto?
Gruss
Elmar
Hallo Elmar,

Zunächst einmal vielen Dank. Leider komme ich erst heute zum
antworten. Bisher gibt es keine Besserung. Ich habe alles inzwischen
mit folgenden Änderungen getestet (Annahme der Nutzer heißt dom\xyz
ist normaler AD Nutzer, lokaler Admin und dbo der Datenbank):
- SQL Server Express läuft unter Domänen Konto -> Fehler bleibt
- SQL Server Express läuft unter Konto Netzwerkdienst -> Fehler bleibt
- Remote Logins für Nutzer dom\xyz eingerichtet (lokaler Nutzer= dom
\xyz ; remote Nutzer=dom\xyz; Identität annehmen=ja) -> Fehler
bleibt
- Einstellung "Für eine Anmeldung, die nicht in der oben angezeigten
Liste definiert ist, werden Verbindungen:"
"Nicht in einem Sicherheitskontext verwendet" -> Fehler bleibt
"Im aktuellen Sicherheitskontext der Anmeldung verwendet" -> Fehler
bleibt
- explzites setzen der Berechtigungen auf die definierte Sicht auf
"public" -> Fehler bleibt
- Test mit einem weiterem Verbindungserver für Excel (Provider: Jet
4.0) -> auch hier: lokal funktioniert alles bestens, remote gar nichts
Als Ausweichlösung habe ich mir inzwischen in Visual Studio 2005 eine
Datatable erstellt, in die die AD Daten eingelesen werden. Dies
gestaltet die weitere Programmierung jedoch wesentlich aufwendiger.
Ich hoffe, jemand hat noch eine Idee.
Gruß
Uwe

Loading...