用于 Microsoft 目录服务的 OLE DB 访问接口

通过用于 Microsoft 目录服务的 Microsoft OLE DB 访问接口可以访问 Microsoft Windows 2000 目录服务中的信息。使用此访问接口的查询可返回对象的最大数量为 1000。

为 Windows 2000 目录服务创建链接服务器

  • 通过分别将 ADSDSOObject 和 adsdatasource 用作 sp_addlinkedserver 系统存储过程的 provider_name 和 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 目录服务的 Microsoft OLE DB 访问接口支持两种命令方言(LDAP 和 SQL)查询目录服务。可以使用 OPENQUERY 函数将命令发送到目录服务并在 SELECT 语句中使用其结果。

注意注意

Microsoft OLE DB Provider for Microsoft Directory Services 不支持从 Integration Services 直接进行 LDAP 查询。相反,按本主题所述创建到 Microsoft Directory Services 的链接服务器并使用 OPENQUERY,或者使用脚本任务。有关示例,请参阅 使用脚本任务查询 Active Directory

以下示例显示创建这样一个视图,它使用 OPENQUERY 返回域地址为 sales.adventure-works.com 的服务器 ADSISrv 上的目录中的信息。OPENQUERY 函数中的命令是一个针对目录的 SQL 查询,该查询返回对象的 Name、SN 和 ST 属性,这些对象属于目录中指定的层次结构位置 (OU=Sales) 上的 contact 类。因而,可在任何 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 服务文档。