用于 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 服务文档。