2009-08-27 108 views
1

的Active Directory无法通过SQL Server查询AD。我添加了链接的服务器引用的Active Directory都通过SQL(见下文),并通过SSMS GUI,但我想不通的安全问题。查询从SQL Server 2008

EXEC sp_addlinkedserver @server = 'ADSI', @srvproduct = 'Active Directory Services 2.5', @provider = 'ADSDSOObject', @datasrc = 'adsdatasource' 

    EXEC sp_addlinkedsrvlogin @rmtsrvname = 'ADSI', @useself = 'False', @locallogin = 'sa', @rmtuser = 'mylogin', @rmtpassword = 'mypassword' 

因此该查询说“...The provider indicates that the user did not have the permission to perform the operation.

SELECT * FROM OPENQUERY(ADSI, 'SELECT givenName, sn FROM ''LDAP://dc=mydomain,dc=com'' WHERE objectClass=''Person'' AND objectClass=''User''') 

我大概有@locallogin,@rmtuser和@rmtpassword关闭和我混淆了每个参数的含义,什么正确的参数失败应该;他们是否应该包括用户ID和密码合并为一个字符串,包括反斜杠,或aerobase,或者你有什么。

有什么建议吗?不要紧的SQL Server数据库,它只是SS 08更多的信息,由于智能感知的一点点。

回答

2

试验和错误导致我推断,@rmtuser参数期望域反斜线用户名;这似乎允许它现在是可查询的。

+0

怪异的事情 - 我的域\用户必须小写工作。大写字母没有去... – geekinit 2013-10-09 14:01:54