Exécution d'un SQL distribué requête à l'aide ADSI

Traductions disponibles Traductions disponibles
Numéro d'article: 299410 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article fournit des informations sur l'utilisation du fournisseur OLEDB de ADSI (Active Directory Services Interfaces) à partir de SQL Server pour exécuter une requête distribuée.

Plus d'informations

Exigences et des informations générales

Une requête distribuée permet au développeur remplir une table SQL Server ou l'affichage des données d'Active Directory ou d'un autre serveur LDAP (Lightweight Directory Access Protocol). Pour effectuer une requête distribuée à l'aide d'ADSI, le serveur doit utiliser SQL Server 7.0 ou version ultérieure. ADSI est un composant du système de Windows 2000 par conséquent, aucune installation supplémentaire dans ne requis sur ce système d'exploitation. Si le de système d'exploitation serveur est Windows NT 4.0, l'extension client de Active Directory (DSClient) pour Windows NT 4.0 doit être installée. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
288358Comment installer l'extension du Client Active Directory
Une procédure étape par étape pour effectuer une requête distribuée à l'aide d'ADSI peut être trouvée sous «Jointure des données hétérogènes» dans l'article MSDN suivant :
Joindre des données hétérogènes
http://msdn.microsoft.com/en-us/library/aa746379.aspx
Lorsque la commande OPENQUERY est exécutée, SQL Server appelle fournisseur OLEDB de ADSI, ADsDSOObject, qui a été configuré dans la fonction sp_addlinkedserver . Le fournisseur transmet la requête à fonctions d'interface lDirectorySearch ADSI sous-jacents. Ces fonctions ADSI va appeler le nécessaire LDAP sur le serveur souhaité. Les réponses à partir du serveur seront ensuite passés sauvegarder les couches mêmes à SQL Server.

Une requête dans dialectes le LDAP ou SQL peut être utilisée. Vous trouverez plus d'informations sur la recherche avec fournisseur OLEDB de ADSI sous l'article MSDN suivant :
Recherche dans Active Directory
http://msdn.microsoft.com/en-us/library/aa746468(VS.85).aspx
Une discussion sur les deux dialectes se trouve sous la sous-rubrique suivante dans MSDN :
Dialecte
http://msdn.microsoft.com/en-us/library/aa772377(VS.85).aspx
Si un astérisque () est spécifié pour la liste d'attributs, le fournisseur OLEDB ADSI renvoie un jeu d'enregistrements qui contient uniquement l'ADsPath de chaque entrée. Chemin est une côté client généré attribut et est garantie être renvoyé comme un attribut de valeur singled.

Une chaîne de liaison sans serveur est une qui ne contient pas le nom ou l'adresse IP du serveur cible. Liaisons sans serveur sont utilisés pour trouver le meilleur contrôleur de domaine Windows 2000 pour traiter la demande. Liaisons sans serveur ne peut pas être utilisés lorsque le serveur cible n'est pas un contrôleur de domaine Windows 2000 pour le domaine par défaut. Pour plus d'informations sur les liaisons sans serveur, consultez
Liaison sans serveur et RootDSE
http://msdn.microsoft.com/en-us/library/ms677945.aspx
Dans l'exemple dans le livre blanc, le serveur LDAP doit être contacté en utilisant les informations d'identification sous lequel l'appel OPENQUERY a été effectué. Selon comment votre application est conçue, il peut ou peut être souhaitable. Si l'authentification SQL Server au lieu de l'authentification Windows est utilisée, les informations d'identification SQL seront transmises dans le répertoire. Problèmes d'authentification seront produit également si le service d'annuaire cible ne prend en charge l'authentification Windows. Pour plus d'informations sur l'utilisation de ADSI pour rechercher ces serveurs LDAP, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
251195Comment utiliser ADSI pour interroger un serveur LDAP tiers
Si elle n'est pas souhaitable de contacter le répertoire en utilisant les mêmes informations d'identification que l'appel OPENQUERY , une sp_addlinksrvlogin permet de modifier l'identité sous laquelle est contacté un serveur distant. Lorsque le sp_addlinksrvlogin est implémentée ADSI appellera une liaison simple au service d'annuaire cible avec les informations spécifiées dans les paramètres de l'argument utildist et motdepassedist . Il est important de noter qu'une simple liaison va transmettre le serveur de répertoire en texte clair informations d'identification. Cela présente l'avantage qui il peuvent comprendre plusieurs serveurs d'annuaire, mais l'inconvénient est que le nom d'utilisateur et le mot de passe sera visibles sur un moniteur réseau. Pour plus d'informations sur simple lie voir :
ldap_simple_bind_s
http://msdn.microsoft.com/en-us/library/aa366995.aspx
Une fois ajouté, sp_addlinksrvlogin peut être supprimé en appelant la procédure sp_droplinkedsrvlogin .

Limitations

Le processus d'utilisation l'instruction OPENQUERY pour extraire des informations à partir d'un serveur LDAP does souffrent de certaines limitations. Les limites peuvent être contournées dans certains cas, mais dans d'autres la conception d'application doit être modifiée. Une application externe ou un objet COM qui utilise ADSI pour récupérer les informations du serveur LDAP et ensuite établir une table dans SQL en utilisant ADO ou d'autres méthodes d'accès aux données est une autre méthode viable.

La première limitation est que les propriétés à valeurs multiples ne peut être retournées dans le jeu de résultats à SQL Server. ADSI lit informations de schéma à partir du serveur LDAP qui définit la structure et la syntaxe des classes et attributs utilisés par le serveur. Si l'attribut qui est demandée à partir du serveur LDAP est défini comme étant à valeurs multiples dans le schéma qu'il ne peut pas être renvoyé sur une instruction OPENQUERY.

Il est généralement utilisé pour un serveur d'annuaire appliquer une limite de serveur sur le nombre d'objets qui sera retournée pour une requête donnée. Ceci est à éviter les attaques par déni de service et la surcharge de réseau. Pour interroger correctement le serveur d'annuaire, requêtes importantes doivent être divisés en plusieurs petits. Cela consiste via un processus appelé pagination. Pagination est disponible via le fournisseur OLE DB d'ADSI, il n'existe actuellement aucun moyen disponible pour effectuer à partir d'une requête distribuée SQL. Cela signifie que le nombre total d'objets qui peuvent être retournées pour une requête est la limite du serveur. Dans Windows 2000 Active Directory, la limite de serveur par défaut est 1 000 objets. Vous trouverez plus d'informations sur d'échange sous la rubrique de MSDN suivante :
Pagination avec IDirectorySearch
http://msdn.microsoft.com/en-us/library/aa746414(VS.85).aspx
Pour plus d'informations sur la modification la limite du serveur pour maxPageSize à l'aide de NTDSUtil, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
315071Comment afficher et définir des stratégie LDAP dans Active Directory à l'aide de Ntdsutil.exe

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
187529Comment utiliser ADO pour accéder à des objets via un fournisseur LDAP ADSI
Vous trouverez plus d'informations, y compris un exemple, dans la section ADSI de la plate-forme SDK, trouver plus d'informations sur les pouvez sur le site suivant :
http://www.microsoft.com/downloads/details.aspx?FamilyId=149187AC-7008-4F49-A00A-26DCEBE0FC32&displaylang=en

Le lien ci-dessus a également d'informations sur l'emplacement obtenir le téléchargement pour les différents kits SDK Windows au bas de la page sous sectiont intitulée: «Que d'autres personnes sont téléchargement».

Propriétés

Numéro d'article: 299410 - Dernière mise à jour: mardi 11 avril 2006 - Version: 5.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft SQL Server 7.0 Standard
  • Microsoft SQL Server 2000 Standard
  • Microsoft Active Directory Service Interfaces 2.5
Mots-clés : 
kbmt kbdswadsi2003swept kbinfo KB299410 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 299410
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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