2

我将我的 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
准备查询时发生错误...

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

4

1 回答 1

1

据我所知,SQL Server 到 Active Directory 的界面是只读的——您可以从 AD 中进行选择,但不能对其进行更新。

请参阅 Richard Mueller 关于该主题的ADO 搜索提示- 他指出:

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

于 2012-03-09T19:16:32.497 回答