Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 LDAP  [new]
oreshnik
Member

Откуда:
Сообщений: 5
Подскажите что я делаю не так, пытаясь подключится в Active Directory

Для теста сначала подключаюсь с помощью программы LDAP Admin, все проходит нормально. Вижу весь состав Active Directory (см вложение)

link server создавал по этому мануалу:
https://blog.sqlauthority.com/2016/03/30/sql-server-query-active-directory-data-using-adsi-ldap-linked-server/

Запрос вида, возвращает записи из Active Directory
SELECT * FROM OPENQUERY (ADSI, 'SELECT
*
FROM ''LDAP://XXXXX.YYY.ZZZ.ru/ou=People,dc=ZZZ,dc=ru''
')

Но стоит попытаться запросить какие то поля

SELECT * FROM OPENQUERY (ADSI, 'SELECT
*
FROM ''LDAP://XXXXX.YYY.ZZZ.ru/ou=People,dc=ZZZ,dc=ru''
where ObjectCategory=''person''
')

В ответ тишина - возвращается либо значения Null, либо пусто
Почему-то объекты cn SQL Server-у не передаются.
C правами учетной записи вроде всё ровно, тест в программе LDAP Admin это подтверждает. Единственное по коннекте LDAP Admin ругается на не подписанный сертификат сервера LDAP.
Сервер Microsoft SQL Server 2014 - 12.0.4100.1 (X64)

К сообщению приложен файл. Размер - 53Kb
19 июл 18, 14:39    [21585240]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
oreshnik,

может ObjectClass = ''person'' ?
19 июл 18, 14:46    [21585264]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
oreshnik
Member

Откуда:
Сообщений: 5
TaPaK,

Да так пробовал, в ответ тоже пусто.
Может настройки линк сервера какие-то нужны другие, уже не знаю в какую сторону копать
19 июл 18, 15:54    [21585547]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
vikkiv
Member

Откуда: London
Сообщений: 2703
oreshnik,

я без linked server делаю, всё работает на SQL 2017:
SELECT*FROM OPENROWSET('ADSDSOObject',
'MY_DC_NS_Svr;Integrated Security=SSPI','SELECT name,displayName,samAccountName,cn,ADsPath FROM 
''LDAP://europe.some_company.intra/OU=Users,OU=CITY,OU=SITES,OU=CORP,OU=EU,OU=Countries,DC=europe,DC=some_company,DC=intra'' where objectClass=''User''and objectCategory=''Person''and 
CN<>''EURO*''and ''userAccountControl:1.2.840.113556.1.4.803:''<>2')x
19 июл 18, 16:10    [21585590]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
oreshnik
Member

Откуда:
Сообщений: 5
vikkiv спасибо, попробовал ваш вариант

Точно такая же петрушка. Подключение есть, но ни одного объекта cn не возвращает.
Получается настройки линк сервера не причем.

Как еще станцевать, вокруг этого LDAP, блин.
19 июл 18, 17:08    [21585815]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
vikkiv
Member

Откуда: London
Сообщений: 2703
oreshnik,

есть ещё такой нюанс что запрос возвращает только примерно первых 1000 строк

пробую другую ветку в AD, где только чистые пользователи и их мало (например десяток), убирай всё что после WHERE и оставь в SELECT только NAME , в общем упрощай запрос до минимума пока данные не потекут, потом наращивай сложность и смотри где ломается.

я скриптами из AD часто нужную информацию вытаскиваю, например через родными средствами WINDOWS администрации типа PowerShell:
New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=my_user_ud))")).FindOne()
или
([wmi]"win32_userAccount.Domain='my_domain',Name='my_user_id'").Sid
там-же все массивы из SQL процедуры обрабатываются.

можно и через xp_cmdshell если религия позволяет и уж совсем со дна начинать приходится
19 июл 18, 17:55    [21586069]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
vikkiv
есть ещё такой нюанс что запрос возвращает только примерно первых 1000 строк
Есть такая бага особенность, решается получением данных частями, по какому то критерию.
19 июл 18, 19:57    [21586311]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7758
vikkiv,

1000 строк настраивается на контроллере домена. Он разбивает по страницам, размер страницы можно определить. Ну или выгружать постранично, но это уже не с помощью linked server.

Person с большой буквы пишется.
20 июл 18, 02:02    [21586907]     Ответить | Цитировать Сообщить модератору
 Re: LDAP  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
oreshnik, SQL Server то от доменной учетки запущен? Которая права на чтение AD имеет?
20 июл 18, 15:48    [21589264]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить