Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le dialecte SQL, dérivé du langage de requête structurée, utilise des expressions lisibles par l’homme pour définir des instructions de requête. Utilisez une instruction de requête SQL avec les interfaces de recherche ADSI suivantes :
- Les interfaces Ado (ActiveX Data Object), qui sont des interfaces Automation qui utilisent OLE DB.
- OLE DB, qui est un ensemble d’interfaces C/C++ pour interroger des bases de données.
Les instructions SQL nécessitent la syntaxe suivante.
SELECT [ALL] * | select-list FROM 'ADsPath' [WHERE search-condition] [ORDER BY sort-list]
Le tableau suivant répertorie les mots clés d’instruction de requête SQL.
| Mot-clé | Description |
|---|---|
| CHOISIR | Spécifie une liste séparée par des virgules d’attributs à récupérer pour chaque objet. Si vous spécifiez *, la requête récupère uniquement l’ADsPath de chaque objet. |
| DE | Spécifie l’ADsPath de la base de la recherche. Par exemple, L’ADsPath du conteneur Users dans un domaine Active Directory peut être « LDAP ://CN=Users,DC=Fabrikam,DC=COM ». N’oubliez pas que le chemin est placé entre guillemets simples ('). |
| OÙ | Mot clé facultatif qui spécifie le filtre de requête. |
| ORDER BY | Mot clé facultatif qui génère un tri côté serveur si le serveur prend en charge le contrôle de tri LDAP. Active Directory prend en charge le contrôle de tri, mais il peut avoir un impact sur les performances du serveur, en particulier si le jeu de résultats est volumineux. La liste de tri est une liste séparée par des virgules d’attributs sur lesquels trier. N’oubliez pas qu’Active Directory ne prend en charge qu’une seule clé de tri. Vous pouvez utiliser les mots clés ASC et DESC facultatifs pour spécifier l’ordre de tri croissant ou décroissant ; la valeur par défaut est croissant. Le mot clé ORDER BY remplace toute clé de tri spécifiée par la propriété « Sort on » de l’objet Ado Command. |
Note
Dans les cas où un jeu de caractères multioctets est utilisé, si la recherche est effectuée par ADO avec le dialecte SQL, une barre oblique inverse ne peut pas être utilisée pour échapper des caractères. Au lieu de cela, les séquences d’échappement répertoriées dans caractères spéciaux doivent être utilisées. Par exemple, pour une instruction qui a utilisé la syntaxe « samAccountName=(Test », qui utilise la barre oblique inverse, « \ », pour échapper à la parenthèse ouverte, « (« à la place, vous remplacez la barre oblique inverse par le caractère spécial « \28 », comme suit : « samAccountName=\28Test ».
Les instructions de requête suivantes sont des exemples de dialecte SQL dans ADSI.
Pour rechercher tous les objets de groupe.
SELECT ADsPath, cn FROM 'LDAP://DC=Fabrikam,DC=COM' WHERE objectCategory='group'
Pour rechercher tous les utilisateurs dont le nom commence par la lettre H.
SELECT ADsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=COM' WHERE objectCategory='person' AND objectClass='user' AND sn = 'H*' ORDER BY sn
La grammaire formelle pour les requêtes SQL est définie dans l’exemple de code suivant. Tous les mots clés ne respectent pas la casse.
statement ::= select-statement
select-statement ::= SELECT [ALL] select-list FROM table-identifier [WHERE search-condition] [ORDER BY sort-list]
select-list ::= * | select-sublist [, select-sublist]...
select-sublist ::= column-identifier
column-identifier ::= user-defined-name
table-identifier ::= string-literal
search-condition ::= boolean-term [OR search-condition]
sort-list ::= column-identifier [ASC | DESC] [,column-identifier [ASC | DESC]]...
boolean-term ::= boolean-factor [AND boolean-term]
boolean-factor ::= [NOT] boolean-primary
boolean-primary ::= comparison-predicate | (search-condition)
comparison-predicate ::= column-identifier comparison-operator literal
comparison-operator ::= < | > | <= | >= | = | <>
user-defined-name ::= letter [letter | digit]...
literal ::= string-literal | numeric-literal | boolean-literal
string-literal ::= '{character}...' (Any sequence of characters delimited by quotes)
numeric-literal ::= digits [fraction] [exponent]
digits ::= digit [digit]...
fraction ::= . digits
exponent ::= E digits
boolean-literal ::= TRUE | FALSE | YES | NO | ON | OFF
Les jointures internes SQL ne sont pas prises en charge par le fournisseur OLE DB Active Directory, mais vous pouvez utiliser SQL pour joindre des données SQL et Active Directory. Pour plus d’informations, consultez Création d’une jointure hétérogène entre SQL Server et Active Directory.
Rubriques connexes