所以我有一个SQL查询从我们的Active Directory中提取数据而没有任何问题(为了发布目的而缩小了范围):
SELECT TOP 901 *
FROM OpenQuery(ADSI, 'SELECT title, displayName, sAMAccountName, givenName, sn
FROM ''LDAP://DC=[STUFF],DC=[MOAR STUFF],DC=com''
where objectCategory = ''Person'' AND objectClass = ''User''')
这会按预期拉出记录。我需要从我们信任的其他域中提取记录,因此 只需要更改LDAP字符串。但这样做只会返回一个通用的
“准备查询时出错......对于链接服务器”ADSI“**”(Msg 7321,Level 16,State 2),针对OLE DB提供程序“ADSDSOObject”执行。
我说泛型,因为我可以在SELECT语句中键入任何内容(搞砸了),我会得到相同的消息。
我在字符串中尝试使用和不使用FQDN。我已经确认链接服务器使用的登录具有读访问权限。有什么想法吗?
提前致谢!
-Karl
答案 0 :(得分:1)
所以它出现了#34; Cross Forest SQL Query"即使帐户被授予域管理员,也不能很好地处理外部帐户。解决方案是在受信任的域上获取本地帐户。将该本地帐户与链接服务器一起使用就可以了。就我而言,我为每个域使用单独的链接服务器。我估计会有一个更优雅的解决方案,但我还没有想到。