我无法通过SQL Server查询AD。我通过SQL(见下文)和SSMS GUI添加引用活动目录的链接服务器,但我无法弄清楚安全问题。
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数据库无关紧要,只是因为一小部分Intellisense,SS 08的信息量更大。
答案 0 :(得分:2)
试验和错误使我推断出@rmtuser参数需要域反斜杠用户名;现在似乎允许它可查询。