因此,我有一个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” **的OLE DB访问接口“ ADSDSOObject”执行错误。(消息7321,级别16,状态2)。

我说通用的,是因为我可以在SELECT语句中键入几乎所有内容(弄乱它),并且我会得到相同的消息。

我尝试过在字符串中是否包含FQDN。我已经确认链接服务器使用的登录名具有读取权限。有任何想法吗?

提前致谢!

-卡尔

最佳答案

因此,似乎“跨林SQL查询”不能很好地处理外部帐户-即使该帐户被授予Domain Admin。解决方案是在受信任的域上获取本地帐户。将本地帐户与链接服务器一起使用即可达到目的。就我而言,我为每个域使用单独的链接服务器。我认为会有一个更优雅的解决方案,但是我还没有想到。

07-24 09:55