Биты и байты.

Биты и байты.

среда, 27 ноября 2013 г.

Интеграция SQL Server с Active Directory

В современном мире без интеграции никуда((
Даже в ВТО пришлось интегрироваться за чем-то..
Бывают конечно удачные примеры

Но сейчас речь не об этом, допустим нужно нам добавить всех пользователей из Active Directory (полезная хрень которая содержит в себе всех пользователей и их настройки и политики)
к себе в базу SQL Server например…
Все оказывается делом 10 минут

Смотрим как называется наш домен
В командной строке Cmd, вводим systeminfo


Скачиваем себе Active Directory Explorer

Подключаемся к нашему домену


Краткие аббревиатуры LDAP
OU - Organization Unit - организационный блок (организационная единица или подразделение), которая содержит такие объекты, как пользователи, контакты, группы и др.
CN - Common Name - общее (относительное) имя. Пользователь, контакт, группа или другой объект, который как правило не имеет дочерних объектов.
DC - Domain Component – компонент доменного имени.

Смотрим как называется наш домен в котором находятся все пользователи, можно воспользоваться поиском, обычно ищу по мылу, можно по имени и тд и тп


Нашли теперь идем в SQL Server делаем две простые команды, конечно должны быть права на созданием линкованного сервера,
Пишем свое имя пользователя и пароль

EXEC master.dbo.sp_addlinkedserver @server = N'ADSI'
, @srvproduct=N'Active Directory Service Interfaces'
, @provider=N'ADSDSOObject'
, @datasrc=N'adsdatasource'


EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI'
,@useself=N'False'
,@locallogin=NULL
,@rmtuser=N'TEST\VPUPKIN'
,@rmtpassword='123456'

Пол дела сделано)
Теперь создаем представление в нашей базе, вместо наш домен = пишем имя нашего домена, логично ведь?)

CREATE view [dbo].[V_ACTIVE_DIRECTORY_USERS] as
SELECT Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl, ObjectGuid , MAX(Blocked) as Blocked
   FROM
         (
                  SELECT Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl, ObjectGuid, 0 as Blocked FROM OPENQUERY(ADSI, 'select Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl,ObjectGuid   from ''LDAP://DC=наш домен,DC=ru'' WHERE  objectClass=''user''')
                  union all
                  SELECT Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl, ObjectGuid, 1 as Blocked FROM OPENQUERY(ADSI, 'select Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl,ObjectGuid   from ''LDAP://OU=заблокированные пользователи,DC=наш домен,DC=ru'' WHERE  objectClass=''user''')
         ) T
GROUP BY Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl, ObjectGuid

И радуемся))
Напоследок немного расслабончиков..
Девочка, которая была воспитана режиссёрами, в первую брачную ночь сделала несколько дублей.


About