Ausführen einer SQL verteilt-Abfrage mithilfe von ADSI

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 299410 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel enthält Informationen zum Verwenden des Active Directory-Dienstschnittstelle (ADSI) OLE DB-Providers von SQL Server zum Ausführen einer verteilten Abfrage.

Weitere Informationen

Anforderungen und allgemeine Informationen

Eine verteilte Abfrage kann der Entwickler zum Auffüllen einer SQL Server-Tabelle oder Ansicht mit Daten in Active Directory oder anderen Server (LIGHTWEIGHT Directory Access Protocol). Zur Durchführung einer verteilten Abfrage mithilfe von ADSI muss auf der Server SQLServer 7.0 oder höher ausgeführt werden. ADSI ist eine Systemkomponente von Windows 2000 daher keine zusätzliche Installation in auf das Betriebssystem erforderlich. Wenn der Server Betriebssystem Windows NT 4.0 ist, muss das Active Directory Client Extension (DSClient) für Windows NT 4.0 installiert werden. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
288358Zum Installieren von Active Directory Client Extension
Eine schrittweise Anleitung zum Ausführen einer verteilten Abfrage mithilfe von ADSI sich unter "Verknüpfen heterogene Daten" befindet im folgenden Artikel der MSDN Library:
Verknüpfen von heterogene Daten
http://msdn.microsoft.com/en-us/library/aa746379.aspx
Wenn der OPENQUERY-Befehl ausgegeben wird, wird SQL Server ADSI OLEDB-Provider ADsDSOObject, aufrufen, die in der Funktion Sp_addlinkedserver eingerichtet wurde. Der Anbieter übergibt die Abfrage an zugrunde liegenden ADSI lDirectorySearch Schnittstellenfunktionen. Diese ADSI-Funktionen machen die erforderlichen LDAP-Aufrufe an den gewünschten Server. Die Antworten vom Server werden dann sichern Sie die gleichen Schichten zu SQL Server übergeben werden.

Eine Abfrage in der LDAP- oder SQL-Dialekte kann verwendet werden. Weitere Informationen zum Suchen mit des ADSI OLE DB-Anbieter befindet sich unter folgendem MSDN-Artikel:
Suchen in Active Directory
http://msdn.microsoft.com/en-us/library/aa746468(VS.85).aspx
Eine Erörterung der zwei Dialekte befindet sich unter der folgenden Unterthema in MSDN:
Dialekt
http://msdn.microsoft.com/en-us/library/aa772377(VS.85).aspx
Wenn ein Sternchen () für die Attributliste angegeben ist, gibt der ADSI OLE DB-Provider ein Recordset, das nur den ADsPath jeder Eintrag enthält. ADsPath ist eine clientseitige Attribut generiert und ist als singled wichtigen Attribut zurückgegeben werden soll.

Eine serverlose Bindung Zeichenfolge ist, die den Namen oder IP-Adresse des Zielservers nicht enthalten. Serverlose Bindungen werden verwendet, um den besten Windows 2000-Domänencontroller die Anforderung verarbeiten zu suchen. Serverlose Bindungen können nicht verwendet werden, wenn der Zielserver nicht mit einem Windows 2000-Domänencontroller für die Standarddomäne ist. Weitere Informationen zum serverlose Bindungen finden Sie unter
Serverlose Bindung und RootDSE
http://msdn.microsoft.com/en-us/library/ms677945.aspx
Im Beispiel im White Paper werden der LDAP-Server mithilfe der Anmeldeinformationen unter denen die OPENQUERY aufgerufen wurde kontaktiert. Abhängig davon, wie Ihre Anwendung entworfen wurde, dies möglicherweise oder möglicherweise nicht wünschenswert. Wenn SQL Server-Authentifizierung anstelle der Windows-verwendet wird, werden die SQL-Anmeldeinformationen in das Verzeichnis übermittelt werden. Authentifizierungsprobleme treten auch, wenn der Ziel-Verzeichnisdienst Windows-Authentifizierung unterstützt. Weitere Informationen zu ADSI Abfragen dieser LDAP-Server finden Sie im folgenden Artikel der Microsoft Knowledge Base:
251195Wie Sie ADSI verwenden, um einen Fremdanbieter-LDAP-Server Abfragen
Ist es nicht wünschenswert, dass das Verzeichnis mithilfe von dieselben Anmeldeinformationen wie des OPENQUERY -Aufrufs zu kontaktieren, kann ein Sp_addlinksrvlogin verwendet werden, um die Identität zu ändern, unter der ein remote-Server kontaktiert wird. Wenn das Sp_addlinksrvlogin implementiert ist wird ADSI eine einfache Bindung an den Ziel-Verzeichnisdienst mit den Informationen in den Parametern Rmtuser und Rmtpassword angegeben aufgerufen. Es ist wichtig zu beachten, dass eine einfache Bindung die Anmeldeinformationen an den Verzeichnisserver im Klartext übermittelt wird. Dies hat den Vorteil, den ein Nachteil ist, dass der Benutzername und Kennwort auf einem Netzwerkmonitor angezeigt werden, aber wird von vielen Verzeichnisserver verstanden werden. Weitere Informationen zur einfachen bindet finden Sie unter:
ldap_simple_bind_s
http://msdn.microsoft.com/en-us/library/aa366995.aspx
Nachdem hinzugefügt, kann die Sp_addlinksrvlogin durch Aufrufen von Sp_droplinkedsrvlogin entfernt werden.

Einschränkungen

Der Prozess des Verwenden der OPENQUERY-Anweisung zum Abrufen von Informationen aus einem LDAP-Server von einige Einschränkungen beeinträchtigt. In einigen Fällen können die Einschränkungen umgangen werden, aber in anderen muss der Anwendungsentwurf geändert werden. Eine externe Anwendung oder ein COM-Objekt, das ADSI für die Informationen aus dem LDAP-Server abrufen und erstellen Sie eine Tabelle in SQL mithilfe von ADO oder andere Datenzugriffsmethoden verwendet ist eine andere geeignete Methode.

Die erste Einschränkung besteht darin, dass mehrwertige Eigenschaften in der Ergebnismenge zu SQL Server zurückgesendet werden können. ADSI liest Schemainformationen vom LDAP-Server, die Definition der Struktur und Syntax der Klassen und Attribute, die vom Server verwendet wird. Wenn das Attribut, das vom LDAP-Server angefordert wird im Schema als mehrwertige definiert ist kann nicht es in einer OPENQUERY-Anweisung zurückgegeben werden.

Es ist typisch für einen Verzeichnisserver um eine Beschränkung Server die Anzahl der Objekte zu erzwingen, die für eine gegebene Abfrage zurückgegeben werden. Dies ist auf Denial-of-Service-Angriffe und Netzwerk Überlastung zu vermeiden. Der Verzeichnisdienst-Server ordnungsgemäß abzufragen, sollten große Abfragen in viele kleinere aufgeteilt werden. Eine Möglichkeit dazu ist durch einen Prozess als Auslagerungsdatei bezeichnet. Paging über des ADSI OLE DB-Provider verfügbar ist, besteht derzeit keine Möglichkeit verfügbar, um es aus einer verteilten SQL-Abfrage auszuführen. Dies bedeutet, dass die Gesamtzahl der Objekte, die für eine Abfrage zurückgegeben werden kann das Serverlimit ist. In Windows 2000 Active Directory liegt der standardmäßige Server Grenzwert bei 1.000 Objekte. Weitere Informationen über Paging finden Sie unter der folgenden MSDN Library-Thema:
Paging mit IDirectorySearch
http://msdn.microsoft.com/en-us/library/aa746414(VS.85).aspx
Weitere Informationen zum Ändern Sie der Server-Begrenzung für MaxPageSize mithilfe von NTDSUtil finden Sie im folgenden Artikel der Microsoft Knowledge Base:
315071Das Anzeigen und Festlegen von LDAP-Richtlinie in Active Directory mithilfe von Ntdsutil

Informationsquellen

Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
187529Wie ADO verwenden, um Zugriff auf Objekte über einen ADSI-LDAP-provider
Weitere Informationen, einschließlich einer Stichprobe, die sich in der Platform SDK im Abschnitt ADSI befindet Weitere Informationen über die auf der folgenden Microsoft-Website werden kann:
http://www.microsoft.com/downloads/details.aspx?FamilyId=149187AC-7008-4F49-A00A-26DCEBE0FC32&displaylang=en

Der Link enthält auch Informationen darüber, wo der Download für verschiedene Windows-SDKs am unteren Rand der Seite unter dem Sectiont mit dem Titel erhalten: "Wie andere sind übertragen".

Eigenschaften

Artikel-ID: 299410 - Geändert am: Dienstag, 11. April 2006 - Version: 5.5
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Active Directory Service Interfaces 2.5
Keywords: 
kbmt kbdswadsi2003swept kbinfo KB299410 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 299410
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com