我可以使用链接的活动目录服务器进行更新吗?

时间:2012-03-09 19:03:13

标签: sql-server ldap linked-server ldap-query

我将SQL Server 2008链接到Active Directory,如下所示:

EXEC sp_addlinkedserver 
        'ADSI', 
        'Active Directory Services 2.5', 
        'ADSDSOObject', 
        'adsdatasource'

然后我可以像这样查询我的电话号码:

SELECT *
FROM OPENQUERY( 
    ADSI, 
    'SELECT DisplayName, TelephoneNumber from ''LDAP://ad1/DC=directagents,DC=local'' WHERE DisplayName=''Aaron Anodide''')
where not DisplayName is null
order by DisplayName

但是我无法更改我的电话号码,因为这会导致错误:

SELECT * FROM
OPENQUERY( 
    ADSI, 
    'UPDATE TelephoneNumber from ''LDAP://ad1/DC=directagents,DC=local'' SET TelephoneNumber=''136'' WHERE DisplayName=''Aaron Anodide''')

错误:

  

Msg 7321,Level 16,State 2,Line 2
  准备查询时发生错误...

这是可能的还是这个用于只读访问的想法?

1 个答案:

答案 0 :(得分:1)

据我所知,SQL Server-to-Active Directory界面是只读的 - 您可以从AD中进行选择,但无法对其进行更新。

见Richard Mueller关于这个主题的ADO Search Tips - 他说:

  

使用ADO进行Active Directory搜索非常有效。提供程序在一次操作中检索与您的查询条件匹配的记录,   无需绑定到许多对象。但是,结果   记录集是只读的,因此ADO 不能用于修改Active   目录对象直接。如果需要修改属性值,   你必须绑定到对象。