3

我试图从 SQL Server 2005 中通过 ldap 查询 AD,但收到以下错误:

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

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

目前,我正在本地 SQL Server 2005 实例上运行查询。我尝试将安全上下文更改为 1) Made without... ,2) 使用登录名的当前 ... 制作,以及 3) 使用此安全上下文制作:指定我自己的域帐户。三个都一样的错误。

不确定是否重要,但“bar”(请参阅​​上面的 ldap 查询)不是我的机器(本地 sql 服务器实例)或 ldap 服务器的域。

有任何想法吗?

4

1 回答 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 链接服务器上的安全属性选项卡下设置使用的帐户。

于 2009-01-23T21:29:35.053 回答