从SQL Server 2005查询AD

3

我正在尝试从SQL Server 2005内部通过ldap查询AD,但是遇到以下错误:

Msg 7321, Level 16, State 2, Line 1 在执行针对OLE DB提供程序“ADsDSOObject”的链接服务器“ADSI”的查询“SELECT NAME,MAIL FROM“LDAP:///CN=foo,CN=Users,DC=bar,DC=com””的准备过程中发生错误。

这是在执行以下存储过程之后:
exec sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADsDSOObject', 'adsdatasource'

目前,我正在本地运行SQL Server 2005实例上的查询。我已经尝试将安全上下文更改为1)不使用...,2)使用登录当前的...,以及3)使用此安全上下文进行设置:指定我的域帐户。所有三个选项都出现了相同的错误。

不确定是否重要,但是“bar”(参见上面的ldap查询)既不是我的计算机(本地SQL Server实例)的域,也不是ldap服务器的域。

有什么想法吗?

1个回答

5

主要问题在于LDAP查询周围的双引号需要改成两个单引号。

LDAP查询可以包括服务器名称或IP和/或LDAP规范。

以下是一些对我有效的查询:

SELECT * FROM OPENQUERY
(ADSI,'SELECT NAME FROM ''LDAP://*ldap.server.name*''')

 

SELECT * FROM OPENQUERY
(ADSI, 'SELECT name, sAMAccountName, distinguishedName 
FROM ''LDAP://DC=*mycompany*, DC=*mytld*''
WHERE objectCategory = ''Person'' AND objectClass = ''user''')

 

SELECT * FROM OPENQUERY
(ADSI,'SELECT name, sAMAccountName, distinguishedName
FROM ''LDAP://*ldap.server.name*/OU=ITDept, OU=users, OU=DC, OU=Corporate, DC=*mycompany*, DC=*mytld*''
WHERE objectCategory = ''Person'' AND objectClass = ''user''')

再次强调,上述内容中没有双引号...只有多个单引号。

ADSI需要进行注册/链接。

EXEC sp_addlinkedserver 'ADSI', 'Active Directory Service Interfaces', 'ADSDSOObject', 'adsdatasource'

如果您遇到权限问题,可以在ADSI链接服务器的安全属性选项卡下设置使用的账户。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接