连接异构数据
典型的组织机构会在多个异构数据库中存储数据。 人力资源数据可存储在 SQL Server 中,而帐户管理数据则存储在目录中。 其他数据可能会以专有格式存储。
使用 SQL Server 7.0、ADSI 和 OLE DB 访问接口,可以将 Active Directory 中的数据与 SQL Server 中的数据连接起来,并创建连接数据的视图。
将 Active Directory 数据与 SQL Server 数据连接起来
运行 SQL 查询分析器(开始 | 程序 | Microsoft SQL Server 7.0)
登录到 SQL Server 计算机。
执行以下行(将其突出显示并按 Ctrl+E):
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Service Interfaces', 'ADSDSOObject', 'adsdatasource' GO
在此行中,sp_addlinkedserver 系统存储过程的参数如下:
- “ADSI”为 server 参数,它将作为此链接服务器的名称。
- “Active Directory Services”为 srvproduct 参数,而它将作为要添加为链接服务器的 OLE DB 数据源的名称。
- “ADSDSOObject”是 provider_name 参数,表示你正在使用 OLE DB 提供程序。
- “adsdatasource”为 data_source 参数,而它将作为 OLE DB 提供程序解释的数据源的名称。
现在可以使用链接的服务器从 SQL Server 访问 Active Directory。
下一个示例使用 OPENQUERY 语句执行查询。 该语句有两个参数:ADSI,即刚创建的链接服务器的名称,以及一条查询语句。 该查询语句包含以下项目:
- SELECT 语句包含将从目录服务获取的数据列表。 需使用 LDAP 显示名称来指示要搜索的数据。
- FROM 语句包含从中获取此信息的链接目录服务器的名称。
- WHERE 语句将提供搜索条件。 在此示例中,它正在搜索用户。
键入并执行:
SELECT * FROM OPENQUERY( ADSI, 'SELECT name, adsPath FROM 'LDAP://DC=Fabrikam,DC=com' WHERE objectCategory = 'Person' AND objectClass= 'user'')
还可以使用 ADSI LDAP 方言。 例如:
SELECT * FROM OPENQUERY(ADSI, '<LDAP://DC=Fabrikam,DC=COM>;(&(objectCategory=Person)(objectClass=user));name, adspath;subtree')
在前面的示例中,LDAP 查询包括四个部分:
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈