Eine SQL ausführen verteilter Abfragen mithilfe von ADSI

Zusammenfassung

Dieser Artikel enthält Informationen zur Verwendung des Active Directory Services Interfaces (ADSI) OLE DB-Providers von SQL Server für eine verteilte Abfrage.

Weitere Informationen

Vorschriften und allgemeine Informationen

Eine verteilte Abfrage kann der Entwickler einer SQL Server-Tabelle oder Ansicht mit Daten in Active Directory oder anderen Lightweight Directory Access Protocol (LDAP) Server aufgefüllt. Ausführen eine verteilte Abfrage mithilfe von ADSI muss auf der Server SQL Server 7.0 oder höher ausgeführt werden. ADSI ist eine Systemkomponente von Windows 2000 keine zusätzliche Installation in diesem Betriebssystem erforderlich. Wenn der Server mit Windows NT 4.0 arbeiten, muss Active Directory Client Extension (DSClient) für Windows NT 4.0 installiert werden. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

288358 zum Installieren von Active Directory Client Extension

Eine schrittweise Anleitung zur Durchführung einer verteilten Abfrage mithilfe von ADSI "Heterogene Daten verknüpfen" im folgenden Artikel in der MSDN Library finden Sie unter:

Wenn OPENQUERY-Befehl ausgegeben wird, wird SQL Server ADSI OLE DB-Provider ADsDSOObject, Aufrufen der Funktion Sp_addlinkedserver festgelegt wurde. Der Anbieter übergibt die Abfrage zugrunde liegenden ADSI lDirectorySearch Schnittstelle Funktionen. Diese ADSI-Funktionen machen die erforderlichen LDAP-Aufrufe zum gewünschten Server. Antworten vom Server werden dann von den gleichen Ebenen an SQL Server übergeben werden.

Eine Abfrage in LDAP oder SQL-Dialekte kann verwendet werden. Weitere Informationen zum Suchen mit ADSI OLE DB-Provider finden Sie unter MSDN-Artikel:Eine Erläuterung der beiden Dialekte befindet sich unter dem folgenden Unterthema in MSDN:Wenn ein Sternchen (*) für die Attributliste angegeben, gibt ADSI-OLEDB-Provider ein Recordset, den ADsPath der einzelnen Einträge enthält. ADsPath ist ein clientseitiger Attribut generiert und ist als ein Attribut vereinzelt Werten zurückgegeben werden.


Eine serverlose Bindung Zeichenfolge ist, die nicht den Namen oder die IP-Adresse des Zielservers enthält. Serverlose Bindung wird die beste Windows 2000 Domänencontroller um die Anforderung zu behandeln. Serverlose Bindung können verwendet werden, wenn der Zielserver keinem Windows 2000-Domänencontroller für die Standarddomäne. Weitere Informationen über serverlose Bindung finden Sie unter

Im Beispiel im Whitepaper werden LDAP-Server kontaktiert mithilfe der Anmeldeinformationen, unter denen OPENQUERY aufgerufen wurde. Je nach die Anwendung Aufbau kann dies kann oder nicht wünschenswert. Wenn SQL Server-Authentifizierung anstelle der Windows-Authentifizierung verwendet wird, werden das Verzeichnis SQL-Anmeldeinformationen übermittelt. Authentifizierungsprobleme tritt auch auf, wenn der Ziel-Verzeichnisdienst Windows-Authentifizierung unterstützt.
Weitere Informationen zur Verwendung von ADSI Abfragen dieser LDAP-Server klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

251195 wie mit ADSI einen Drittanbieter-LDAP-Server Abfragen

Ist es nicht wünschenswert, das Verzeichnis mit den gleichen Anmeldeinformationen wie des Aufrufs von OPENQUERY per Sp_addlinksrvlogin lässt sich die Identität alter unter der remote-Server kontaktiert wird. Wenn Sp_addlinksrvlogin implementiert wird ADSI eine einfache Bindung mit dem Ziel-Verzeichnisdienst Angaben Rmtuser und Rmtpassword Parameter aufgerufen. Es ist wichtig zu beachten, dass eine einfache Bindung die Anmeldeinformationen an den Verzeichnisserver im Klartext übermittelt. Dies hat den Vorteil, den von vielen Verzeichnisserver verstanden wird, aber ein Nachteil ist, dass der Benutzername und das Kennwort auf dem Netzwerkmonitor angezeigt werden. Weitere Informationen zu einfachen Bindung finden Sie unter:



Einmal hinzugefügt, kann Sp_addlinksrvlogin durch Aufrufen von Sp_droplinkedsrvloginentfernt.

Einschränkungen

Verwenden Sie die OPENQUERY-Anweisung Informationen aus einem LDAP-Server abrufen leidet einige Nachteile. In einigen Fällen die Nachteile umgangen werden können, aber in anderen Anwendungsentwurf geändert werden muss. Eine externe Anwendung oder COM-Objekt, das aus dem LDAP-Server abrufen und erstellen eine Tabelle in SQL mit ADO oder andere Methoden für den Datenzugriff mithilfe von ADSI ist eine andere geeignete Methode.

Die erste Beschränkung besteht, mehrwertige Eigenschaften im Resultset an SQL Server zurückgegeben werden können. ADSI liest Schemainformationen aus dem LDAP-Server, die die Struktur und Syntax der Klassen und Attribute, die vom Server verwendete definiert. Wenn das Attribut des LDAP-Servers angefordert wird im Schema als mehrwertige definiert ist kann in einer OPENQUERY-Anweisung zurückgegeben werden.

Es ist einem Verzeichnisserver Server-Einschränkung für die Anzahl der Objekte erzwingen, die für eine bestimmte Abfrage zurückgegeben werden. Dies wird Denial-of-Service-Angriffe und Netzwerk überladen. Um den Verzeichnisserver ordnungsgemäß abzufragen, sollten umfangreiche Abfragen in viele kleinere aufgeteilt werden. Eine Möglichkeit ist durch sogenannte Auslagerungsdatei. Beim Paging über ADSI OLE DB-Provider verfügbar ist, gibt es keine Möglichkeit, die Ausführung einer verteilten Abfrage SQL zur Verfügung. Dies bedeutet, dass die Gesamtzahl der Objekte, die für eine Abfrage zurückgegeben werden das Serverlimit. In Windows 2000 Active Directory ist das Standardlimit Server 1.000 Objekte. Weitere Informationen über Paging finden Sie unter dem folgenden MSDN Library-Thema:

Weitere Informationen über das Serverlimit für MaxPageSize mithilfe von NTDSUtil ändern klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

315071 wie anzeigen und Einrichten von LDAP-Richtlinien in Active Directory mit Ntdsutil.exe

Referenzen

Klicken Sie für weitere Informationen auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

187529 mit ADO Zugriff auf Objekte über einen ADSI LDAP-provider

Weitere Informationen, einschließlich einer Stichprobe im ADSI-Abschnitt des Platform SDK finden Sie weitere Informationen zu der auf der folgenden Microsoft-Website finden:
Hat der Link auch Informationen darüber, wo Sie für verschiedene Windows SDKs am unteren Rand der Seite unter dem Titel Sectiont herunterladen: "Was andere laden".
Eigenschaften

Artikelnummer: 299410 – Letzte Überarbeitung: 09.01.2017 – Revision: 1

Feedback