所以我有一个 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 查询”不能很好地处理外部帐户 - 即使该帐户被授予域管理员。解决方案是获取受信任域上的本地帐户。在链接服务器上使用该本地帐户可以解决问题。就我而言,我为每个域使用单独的链接服务器。我认为会有更优雅的解决方案,但我还没有想到。
关于AD 的 SQL 链接服务器查询返回消息 7321,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22920175/