Fragensteller
Active Directory Abfrage in SSIS-Job

Frage
-
Hallo,
wir nutzen im Unternehmen ein SQL-Cluster mit den Analysis Services und SSIS. Nun stoßen wir auf folgende Schwierigkeiten.
Das Problem: Wir können aus dem SSIS heraus keine Benutzer im Active Directory abfragen, die im Forest oberhalb des Trees des Service-Benutzers liegen, unter dem der SSIS-Job ausgeführt wird. Der eingetragene Benutzer für die Verbindung scheint ignoriert zu werden.
Beschreibung:
Wir nutzen im SSIS-Paket eine Connection über einen „.Net Providers for OleDB\OLE DB Provider for Microsoft Directory Services“ zu unserem AD. Der Connection-String sieht folgendermaßen aus: „Data Source=dc10.domain.tld;User ID=ldapInfo@domain.tld;Password=PASSWORD;Provider=ADsDSOObject;“. Das Query auf den AD machen wir über eine ADO NET Source.
Das Query sieht folgendermaßen aus:
SELECT cn, sn, givenname, displayname, distinguishedname, whencreated, mail, useraccountcontrol FROM 'LDAP://OU=someou,DC=domain,DC=tld' WHERE ObjectClass='User' AND (useraccountcontrol = 512 OR useraccountcontrol = 514)
Bei Tests unter den Entwickler-Kontos (in der Domäne domain.tld) funktioniert die Abfrage auch einwandfrei. Im SQL-Server-Job auf Production wird das Paket allerdings von einem Service-Benutzer ausgeführt, der in einer anderen Domäne (unterhalb domain.tld) liegt. Wenn dieser Benutzer das Paket ausführt, können keine Benutzer aus der domain.tld Domäne gefunden werden.
Wir vermuten nun, dass das Binding zum AD von der SSIS-Komponente nicht mit dem Benutzer gemacht wird, der in der Connection angegeben wurde, sondern immer mit dem Benutzer, der das Paket/den Job ausführt.
Kann man das Binding irgendwie beeinflussen, bzw. kann man die ADO Net Source oder die AD-Connection zwingen, das Binding mit einem bestimmten Benutzer herzustellen?
Vielen Dank im Vorraus
Dennis
Alle Antworten
-
Hallo Dennis,
eine Möglichkeit ist es, ein SQL Server Agent Proxy User anzulegen, mit dessen Account dann das SSIS Packet ausgeführt wird, siehe Creating SQL Server Agent Proxies
Im Job Step kann man den Proxy User dann unter "Run as" auswählen:
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 20. Oktober 2014 07:43
- Nicht als Antwort vorgeschlagen Dennis Bernardy Montag, 20. Oktober 2014 08:10
-
Hallo Dennis,
eine Möglichkeit ist es, ein SQL Server Agent Proxy User anzulegen, mit dessen Account dann das SSIS Packet ausgeführt wird, siehe Creating SQL Server Agent Proxies
Im Job Step kann man den Proxy User dann unter "Run as" auswählen:
Olaf Helper
[ Blog] [ Xing] [ MVP]Hallo Olaf,
wir nutzen bereits einen ProxyUser um das Paket auszuführen. Das Problem ist, dass eben genau dieser User keine Rückgabewerte bei besagtem LDAP-Query erhält und wir diesen aber aufgrund der Datenbank-Berechtigungen weiterverwenden müssen.
Dafür sollte doch eigentlich nach meinem Verständnis die Angabe von User und PAssword in der Data Source da sein, dass ich eben unter User A meinen Job ausführe, aber zum LDAP mit User B verbinde, oder nicht?
-
Dafür sollte doch eigentlich nach meinem Verständnis die Angabe von User und PAssword in der Data Source da sein, dass ich eben unter User A meinen Job ausführe, aber zum LDAP mit User B verbinde, oder nicht?
Wenn Du in einer Data Source zum SQL Server bzw. zur ADS User+Pwd angegeben hast, dann wird fest dieser (SQL) Login verwendet, unabhängig vom Job Owner und vom Proxy User.
Aus der ADS Data Source würde ich mal zum Test die Anmeldedaten raus nehmen und eben einen Proxy für den SSIS Job Step verwenden.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 23. Oktober 2014 08:47
- Nicht als Antwort vorgeschlagen Dennis Bernardy Donnerstag, 6. November 2014 12:42
-
Hallo Dennis,
Bist Du mithilfe von Olafs Erklärung weitergekommen? Gibt es eine Besserung, wenn Du das von ihm vorgeschlagene Verfahren ausprobierst?
Gruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo Dimitar,
ich habe die Lösung mal an unsere Entwickler weitergegeben und auch schon eine erste Rückmeldung erhalten. Bisher sieht es so aus, dass auch mit einem Proxy User, der Zugriff auf das Active Directory keine User zurückgegeben werden.
Die User und Passwort angaben innerhalb der DataSource werden auch weiterhin komplett ignoriert.
Gruß
Dennis