Запрос AD с SQL Server 2005 - PullRequest
       27

Запрос AD с SQL Server 2005

3 голосов
/ 02 января 2009

Я пытаюсь запросить AD через ldap из SQL Server 2005, но получаю следующую ошибку:

Сообщение 7321, уровень 16, состояние 2, строка 1 Произошла ошибка при подготовке запроса «SELECT NAME, MAIL FROM» LDAP: /// CN = foo, CN = Users, DC = bar, DC = com "" для выполнения против поставщика OLE DB "ADsDSOObject" для связанного сервера "ADSI ».

Это после выполнения следующей сохраненной процедуры:
exec sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADsDSOObject', 'adsdatasource'

В настоящее время я выполняю запрос на своем локальном экземпляре SQL Server 2005. Я попытался изменить контекст безопасности на 1) Сделано без ..., 2) сделано с использованием текущего имени входа в систему ... и 3) Сделать это с помощью этого контекста безопасности: указав собственную учетную запись домена. Та же ошибка со всеми тремя.

Не уверен, имеет ли это значение, но «bar» (см. Запрос ldap выше) не является доменом моей машины (экземпляр локального сервера sql) или сервера ldap.

Есть идеи?

1 Ответ

5 голосов
/ 24 января 2009

Основная проблема заключается в том, что двойные кавычки вокруг запроса LDAP должны быть удвоены одинарными кавычками.

Запрос LDAP может включать в себя имя или IP-адрес сервера и / или спецификацию LDAP.

Некоторые запросы, которые работают для меня:

SELECT * FROM OPENQUERY
(ADSI,'SELECT NAME FROM ''LDAP://*ldap.server.name*''')

1008 *

SELECT * FROM OPENQUERY
(ADSI, 'SELECT name, sAMAccountName, distinguishedName 
FROM ''LDAP://DC=*mycompany*, DC=*mytld*''
WHERE objectCategory = ''Person'' AND objectClass = ''user''')

1011 *

SELECT * FROM OPENQUERY
(ADSI,'SELECT name, sAMAccountName, distinguishedName
FROM ''LDAP://*ldap.server.name*/OU=ITDept, OU=users, OU=DC, OU=Corporate, DC=*mycompany*, DC=*mytld*''
WHERE objectCategory = ''Person'' AND objectClass = ''user''')

Еще раз ... в приведенном выше тексте нет двойных кавычек ... несколько одинарных кавычек.

ADSI должен быть зарегистрирован / связан с

EXEC sp_addlinkedserver 'ADSI', 'Active Directory Service Interfaces', 'ADSDSOObject', 'adsdatasource'

если у вас есть проблемы с разрешениями, вы можете настроить учетную запись, используемую на вкладке свойств безопасности на связанном сервере ADSI.

...