【问题标题】:query Active Directory for email address from SQL Server 2008 R2?从 SQL Server 2008 R2 查询 Active Directory 的电子邮件地址?
【发布时间】:2011-06-20 06:52:40
【问题描述】:

我们在 SQLS 2008R2 数据库中有一个计划作业,该作业根据用户名 (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'tfindmuch,除了一条建议“检查链接服务器 (ADSI) 是否允许远程访问”的评论之外,没有什么有用的,我不是确定那是什么意思?知识库文章提到 AD 服务器不需要其他配置???

谁能建议如何正确执行此操作?我觉得我遗漏了一些明显的东西(例如,我没有在任何地方配置 DC 主机)但我不知道是什么......

干杯!

【问题讨论】:

  • 看起来像是权限错误。您如何定义链接服务器安排的身份验证设置?以域管理员帐户运行它,看看它是否有效。
  • o_O 现在可以完美运行。哇,如果文档提到需要将链接创建为域管理员才能使链接正常工作,那就太好了.. GAH!你能回答这个问题,我会接受你的回答吗?

标签: sql-server-2008 active-directory ldap


【解决方案1】:

看起来像是权限错误。您如何定义链接服务器安排的身份验证设置?以域管理员帐户运行它,看看它是否有效。

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多