2009-01-02 54 views
3

我试图查询通过LDAP AD从SQL Server 2005中,但出现以下错误:查询公元2005年

消息7321,级别16,状态2,行1 在准备时发生错误对链接服务器“ADSI”的OLE DB提供程序“ADsDSOObject”执行查询“SELECT NAME,MAIL FROM”LDAP:/// CN = foo,CN = Users,DC = bar,DC = com“”。

这是执行下面的存储过程后:
EXEC的sp_addlinkedserver 'ADSI', 'Active Directory服务2.5', 'ADsDSOObject', 'adsdatasource'

目前我跑在我的本地SQL查询Server 2005实例。我已经尝试将安全上下文更改为1)Made Without ...,2)使用登录的当前...进行的更改,以及3)使用此安全上下文进行更改:指定我自己的域帐户。所有三个同样的错误。

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

任何想法?

回答

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需要注册/如果你有,你可以设置安全属性选项卡下所使用的帐户上ADSI链接服务器的权限问题与

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

链接。