我们在SQL2008R2数据库中有一个计划的作业,它根据用户的用户名(sAMAccountName)直接查询遗留数据库中的用户电子邮件地址。
我想直接查询AD,这样我就可以断开这两个系统之间的链接,但在尝试了显示在每个页面上的相同建议后,我无法让它工作,我认为要么是找不到DC,要么是传递身份验证/安全性不起作用。我们在单个域上使用windows身份验证,所有计算机都是该域的一部分,数据库作为网络服务帐户运行。
查看了以下内容:
假设我们的一个DC(我们有几个)叫做"fredDC“,ldap根是"DC=fred,DC=com”。
所以我链接了服务器(这里没有提到主机名,是通过魔术找到的?)
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADSDSOObject', 'adsdatasource'
然后,我尝试运行一个查询:
SELECT sAMAccountName
FROM OPENQUERY(ADSI, 'SELECT sAMAccountName
FROM ''LDAP://DC=fred,DC=com''
WHERE objectCategory = ''Person''
AND objectClass = ''user'' ')
并得到以下错误:
Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing the query "SELECT sAMAccountName
FROM 'LDAP://DC=fred,DC=com'
WHERE objectCategory = 'Person'
AND objectClass = 'user' for execution against OLE DB provider "ADSDSOObject" for linked server "ADSI".
如果是Kerberos直通问题,我尝试直接在DB服务器上运行查询,得到相同的错误:(
我在谷歌和didn't find much上搜索了错误消息,除了一条建议“检查链接服务器(ADSI)是否允许远程访问”的评论之外,没有任何帮助。我不确定这意味着什么?知识库文章提到AD服务器不需要任何其他配置?
有没有人能建议如何正确地做到这一点?我觉得我遗漏了一些明显的东西(例如,我没有在任何地方配置DC主机),但我不知道是什么……
干杯!
发布于 2011-06-20 15:42:08
它看起来像是权限错误。您如何定义链接服务器排列的身份验证设置?以域管理员帐户的身份运行它,看看它是否正常工作。
https://stackoverflow.com/questions/6407749
复制相似问题