Поделиться через


Поставщик OLE DB для служб каталогов Microsoft

Поставщик Microsoft OLE DB для служб каталогов Майкрософт предоставляет доступ к данным службы каталогов Microsoft Windows 2000. Максимальное количество объектов, которые могут быть возвращены запросом при помощи этого поставщика, равно 1000.

Создание связанного сервера для службы каталогов Windows 2000

  • Создавайте связанные серверы с помощью системной хранимой процедуры sp_addlinkedserver, используя значение ADSDSOObject в качестве аргумента provider_name, а adsdatasource в качестве аргумента data_source, например:

    EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 
    'ADSDSOObject', 'adsdatasource'
    GO
    

Для имен входа Windows, прошедших проверку подлинности, для доступа к каталогу при помощи делегирования безопасности SQL Server достаточно самоотображения. Так как самоотображение создается по умолчанию для связанных серверов, созданных при выполнении процедуры sp_addlinkedserver, другие способы сопоставления имени входа не требуются.

Для имен входа SQL Server, прошедших проверку подлинности, подходящую пару «имя-пароль» для подключения к службе каталогов можно настроить при помощи системной хранимой процедуры sp_addlinkedsrvlogin.

ПримечаниеПримечание

По возможности используйте проверку подлинности Windows.

Запрос к службе каталогов

Поставщик Microsoft OLE DB для служб каталогов Майкрософт поддерживает два диалекта команд, LDAP и SQL, позволяющих опрашивать службу каталогов. Функцию OPENQUERY можно применять для отправки команды службе каталогов и использования ее результатов в инструкции SELECT.

ПримечаниеПримечание

Поставщик Microsoft OLE DB для службы каталогов Майкрософт не поддерживает запросы LDAP, поступающие напрямую из Integration Services. Поэтому создайте сервер, связанный со службой каталогов Майкрософт, и используйте команду OPENQUERY так, как описано в этом разделе, либо примените задачу «Сценарий». См. пример в разделе Запрос Active Directory в задаче «Сценарий».

В следующем примере показано создание представления, использующего функцию OPENQUERY для возврата данных из каталога на сервере ADSISrv с доменным именем sales.adventure-works.com. Команда внутри функции OPENQUERY является SQL-запросом к каталогу, возвращающим атрибуты Name, SN и ST объектов, принадлежащих классу contact и находящихся в указанном месте в иерархии каталога (OU=Sales). Это представление можно использовать в любом запросе SQL Server.

CREATE VIEW viewADContacts 
AS
SELECT [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI, 
   'SELECT Name, SN, ST
   FROM ''LDAP://ADSISrv/ OU=Sales,DC=sales,DC=adventure-works,DC=com''
   WHERE objectCategory = ''Person'' AND
      objectClass = ''contact''')
GO
SELECT * FROM viewADContacts

Дополнительные сведения о диалектах LDAP и SQL см. в документации по службам Microsoft Active Directory.