понедельник, 29 октября 2012 г.

Запрос к AD из MS SQL Server

Чтобы получить в MS SQL Server данные из  Active Directory (AD) необходимо:
1) Создать  связанный сервер (Linked Server)
2) Отправить запрос в AD

Итак:
1) создание связанного сервера:

 
sp_addlinkedserver'AD', 'Active Directory Service Interfaces',
'ADSDSOObject', 'adsdatasource'

 Может получиться  так, что у вас будет недостаточно прав для выполнения запросов к AD, для этого необходимо прописать использование конкретной учетной записи: Свойство Связанного сервера(Linked Server Properties )->Безопастность(Security)


2)Сам запрос к AD:
 
SELECT  * FROM OPENQUERY
( AD,'SELECT
name,comment, company, l, postaladdress,
title,telephonenumber, homePhone, mobile,cn, mail, ou, dc, uid, userPrincipalName, sAMAccountName

FROM ''LDAP://DC=mydomen,DC=net''

WHERE objectCategory = ''Person''
AND objectClass= ''user'' '
)
 В данных запросах есть ограничения на выдачу колличества строк - 901 строка, для решения данного ограничения, можно использовать выгружать данные циклами,к примеру ограничивать по начальной букве фамилии пользователя:
SELECT * FROM OPENQUERY
( AD,'SELECT
name,comment, company, l, postaladdress,
title,telephonenumber, homePhone, mobile,cn, mail, ou, dc, uid, userPrincipalName, sAMAccountName

FROM ''LDAP://DC=mydomen,DC=net''

WHERE objectCategory = ''Person''
AND objectClass= ''user''  and sn<''И*'' '


)
Будут выгружены учетные пользователи с фамилией начинающиеся до буквы И.
 

Комментариев нет :

Отправить комментарий