Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Диалект SQL, производный от языка структурированных запросов, использует читаемые человеком выражения для определения инструкций запроса. Используйте инструкцию SQL-запроса со следующими интерфейсами поиска ADSI:
- Интерфейсы объекта данных ActiveX (ADO), которые являются интерфейсами автоматизации, используюющими OLE DB.
- OLE DB, который является набором интерфейсов C/C++ для запросов к базам данных.
Для инструкций SQL требуется следующий синтаксис.
SELECT [ALL] * | select-list FROM 'ADsPath' [WHERE search-condition] [ORDER BY sort-list]
В следующей таблице перечислены ключевые слова инструкции SQL-запроса.
Ключевое слово | Описание |
---|---|
ВЫБИРАТЬ | Задает список атрибутов, разделенных запятыми, для получения каждого объекта. При указании *запрос извлекает только ADsPath каждого объекта. |
ОТ | Указывает ADsPath базы поиска. Например, ADsPath контейнера Users в домене Active Directory может быть "LDAP://CN=Users,DC=Fabrikam,DC=COM". Помните, что путь заключен в пару одинарных кавычки ('). |
ГДЕ | Необязательное ключевое слово, указывающее фильтр запросов. |
ORDER BY | Необязательное ключевое слово, которое создает сортировку на стороне сервера, если сервер поддерживает элемент управления сортировкой LDAP. Active Directory поддерживает элемент управления сортировкой, но может повлиять на производительность сервера, особенно если набор результатов велик. Список сортировки — это разделенный запятыми список атрибутов для сортировки. Помните, что Active Directory поддерживает только один ключ сортировки. Можно использовать необязательные ключевые слова ASC и DESC, чтобы указать порядок сортировки по возрастанию или убыванию; значение по умолчанию возрастает. Ключевое слово ORDER BY переопределяет любой ключ сортировки, указанный свойством Sort on объекта команды ADO. |
Заметка
В случаях, когда используется набор символов MultiByte, если поиск выполняется ADO с диалектом SQL, обратная косая черта не может использоваться для экранирования символов. Вместо этого должны использоваться escape-последовательности, перечисленные в специальные символы. Например, для инструкции, которая использовала синтаксис samAccountName=(Test, который использует обратную косую черту, "\", для экранирования открытой скобки", "(", вместо этого вы замените обратную косую черту специальным символом "\28", как показано ниже: "samAccountName=\28Test".
Ниже приведены примеры диалекта SQL в ADSI.
Поиск всех объектов группы.
SELECT ADsPath, cn FROM 'LDAP://DC=Fabrikam,DC=COM' WHERE objectCategory='group'
Поиск всех пользователей, фамилия которых начинается с буквы H.
SELECT ADsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=COM' WHERE objectCategory='person' AND objectClass='user' AND sn = 'H*' ORDER BY sn
Формальная грамматика для запросов SQL определена в следующем примере кода. Все ключевые слова не учитывает регистр.
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
Внутренние соединения SQL не поддерживаются поставщиком OLE DB Active Directory, но вы можете использовать SQL для присоединения к данным SQL и Active Directory. Дополнительные сведения см. в статье Создание разнородного соединения между SQL Server и Active Directory.
Связанные разделы
-
Синтаксис фильтра поиска
-
поиск с помощью OLE DB