Биты и байты.

Биты и байты.
Показаны сообщения с ярлыком Active Directory. Показать все сообщения
Показаны сообщения с ярлыком Active Directory. Показать все сообщения

пятница, 22 апреля 2016 г.

Как получить больше 1000 записей из AD

При использовании связанного сервера к AD,   может возникнуть проблема получения всех записей из AD.
Поскольку  есть ограничения по количеству строк для запроса к LDAP .
Windows Server 2008 and newer domain controller returns only 5000 values in a LDAP response

Самый простой вариант разбить запрос на несколько частей по любому признаку, самое логичное по sAMAccountname 
Таким образом один запрос превращается в два, три и тд.


SELECT NAME,
       givenName,
       SN,
       sAMAccountname,
       mail,
       company,
       division,
       department,
       manager,
       userAccountControl,
       ObjectGuid,
       CASE
            WHEN ad.accountexpires IN ('9223372036854775807', '0', '129895740000000000') THEN
                 '9999-12-31'
            ELSE DATEADD(
                     mi,
                     (CAST(ad.accountExpires AS BIGINT) / 600000000)
                     + DATEDIFF(Minute, GETUTCDATE(), GETDATE()),
                     CAST('1/1/1601' AS DATETIME2)
                 )
       END AS AccountExpiresDate     
FROM   OPENQUERY(
           AD_SERVER,
           'select Name, givenName, SN, sAMAccountname, mail, company,division,department,manager, userAccountControl,ObjectGuid,accountExpires   from ''LDAP://DC=domen,DC=ru'' WHERE  sAMAccountname  < ''L'' and objectClass=''user'''
       ) AS AD
      

вторник, 10 декабря 2013 г.

Что делать если вас не узнают в SSRS?

Что делать если вас не узнают в Reporting Services или добро пожаловать ANONYMOUS….


Если у вас  например трехзвенная архитектура (клиент-> сервер приложений/отчетов-> сервер реляционной/многомерной БД) и  вы пользуетесь авторизацией Windows
Вы точно столкнетесь с этой задачей, однако на практике она оказывается гораздо проще чем кажется..
при запуске отчета по раздаче прав, который берет  данные с   сервера БД , возникла ошибка

Т.к. здесь возникает второй круг авторизации, первый от клиента к серверу отчетов, второй  от сервера отчетов к серверу БД, схема приблизительно выглядит так

Для решения этой задачи в принципе достаточно настроить авторизацию по протоколу Kerberos,
для этого нужно зарегистрировать в Active Directory  SPN (Service Principal Name) для учетной записи под которой работает сервис  и в итоге получится
Благодаря сопоставлению SPN, определенному в Active Directory (AD), учетная запись Windows, ответственная за службу,
может быть удостоверена и использована для проверки подлинности Kerberos

Вкратце о типах проверки подлинности в Reporting Services можно прочитать здесь

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

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

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

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

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


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

About