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''')

エラー:

メッセージ 7321、レベル 16、状態 2、行 2
クエリの準備中にエラーが発生しました...

これは可能ですか、それとも読み取り専用アクセスに使用されるという考えですか?

4

1 に答える 1

1

私の知る限り、SQL Server から Active Directory へのインターフェイスは読み取り専用です。AD から選択することはできますが、更新することはできません。

このトピックに関するRichard Mueller のADO Search Tipsを参照してください - 彼は次のように述べています。

ADO を使用した Active Directory 検索は非常に効率的です。プロバイダーは、多くのオブジェクトにバインドする必要なく、1 回の操作でクエリ条件に一致するレコードを取得します。ただし、結果のレコードセットは読み取り専用であるため、ADOを使用して Active Directoryオブジェクトを直接変更することはできません。属性値を変更する必要がある場合は、オブジェクトにバインドする必要があります。

于 2012-03-09T19:16:32.497 に答える