16. Februar 2015 · von Joerg Sager

Kurz notiert: LDAP Abfragen mit MS SQL Server

Um so mehr Daten man zur Verfügung hat, um so detaillierter kann man reporten. Jedes Data-Warehouse sollte das Ziel haben, möglichst viele Informationen aus den verschiedensten Systemen zusammen zubringen, damit die Reports immer detaillierter und die Steuerungen immer effektiver werden können. Häufig entsteht der Wunsch nach LDAP-Informationen, um zum Beispiel auf Standorte oder Abteilungen Auswertungen fahren zu können. Wie man den SQL-Server mit LDAP Daten anreichert, können Sie in diesem Artikel lesen.

Die einfachste Möglichkeit ist es, einen Verbindungsserver (Linked Server) einzurichten, welcher es ermöglicht, direkt SELECT-Statements an das Active Directory zu schicken. Dafür nutzen wir folgendes Statement, um einen Verbindungsserver einzurichten:

USE [master]
GO 
EXEC master.dbo.sp_addlinkedserver @server = N'LDAP', @srvproduct=N'Active Directory Service Interfaces', @provider=N'ADSDSOObject', @datasrc=N'adsdatasource'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LDAP',@useself=N'False',@locallogin=NULL,@rmtuser=N'DOMAINUSER',@rmtpassword='**********'
GO 

Der Benutzer, der den Verbindungsserver nutzt, muss die Berechtigung haben, das Active Directory abzufragen.

Jetzt haben wir alles nötige getan, damit wir über den SQL-Server Abfragen an das Active Directory schicken können.

Wenn Sie zum Beispiel für einen internen Newsletter alle E-Mailadressen benötigen, dann könnten Sie folgendes Query nutzen:

SELECT * FROM OpenQuery ( 
  LDAP,  -- LDAP: Name des eingerichten Verbindungsservers
  'SELECT mail, displayName, name
  FROM  ''LDAP://g4.ms'' 
  WHERE objectClass =  ''User''  
  ') AS ldapresult
WHERE mail is not null 

Anmerkung:

LDAP://g4.ms ist in meinem Fall der Connectionstring für unser Development Active Directory. g4.ms ist der Name unseres DomainControllers. Dieser könnte auch so aussehen: LDAP://DOMAIN.com/OU=myOrganisationUnit,DC=myDomain.

Das Ergebnis sieht wie folgt aus:

LDAP Query TSQL

Eine Liste aller abfragbaren User-Attribute finden Sie im Internet wie z.B. hier.

Ich hoffe, dieser kleine Tipp bringt euch eurem Ziel etwas näher und ich freue mich, wie immer, über Feedback und Kommentare.



Diesen Blogeintrag bewerten:

4 Stimmen mit durchschnittlich 4.5/5 Punkten

Haben Sie Fragen zu diesem Artikel oder brauchen Sie Unterstützung?

Nehmen Sie mit uns Kontakt auf!

Wir unterstützen Sie gerne bei Ihren Vorhaben!


Schreibe einen Kommentar

Kontakt.
Lassen Sie sich von uns beraten
Wir freuen uns über Ihr Interesse an unseren Leistungen. Hinterlassen Sie
uns Ihren Namen, Ihre Telefonnummer und E-Mail Adresse – wir melden
uns schnellstmöglich bei Ihnen.
Kontakt aufnehmen