3

SQL Server 2005 内から LDAP 経由で AD にクエリを実行しようとしていますが、次のエラーが発生します。

メッセージ 7321、レベル 16、状態 2、行 1 に対して実行するクエリ「SELECT NAME,MAIL FROM "LDAP:///CN=foo,CN=Users,DC=bar,DC=com"」の準備中にエラーが発生しましたリンク サーバー "ADSI" の OLE DB プロバイダー "ADsDSOObject"。

これは、次のストアド プロシージャを実行した後です:
exec sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADsDSOObject', 'adsdatasource'

現在、ローカルの SQL Server 2005 インスタンスでクエリを実行しています。セキュリティ コンテキストを 1) Made Without... 、2) ログインの current を使用して作成...、および 3) このセキュリティ コンテキストを使用して作成: 自分のドメイン アカウントを指定してみました。3つすべてで同じエラー。

問題があるかどうかはわかりませんが、「バー」(上記のldapクエリを参照)は、私のマシン(ローカルSQLサーバーインスタンス)またはldapサーバーのドメインではありません。

何か案は?

4

1 に答える 1

5

主な問題は、LDAPクエリを囲む二重引用符を二重引用符で囲む必要があることです。

LDAPクエリには、サーバー名またはIPおよび/またはLDAP仕様を含めることができます。

私のために働くいくつかのクエリ:

SELECT * FROM OPENQUERY
(ADSI,'SELECT NAME FROM ''LDAP://*ldap.server.name*''')

 

SELECT * FROM OPENQUERY
(ADSI, 'SELECT name, sAMAccountName, distinguishedName 
FROM ''LDAP://DC=*mycompany*, DC=*mytld*''
WHERE objectCategory = ''Person'' AND objectClass = ''user''')

 

SELECT * FROM OPENQUERY
(ADSI,'SELECT name, sAMAccountName, distinguishedName
FROM ''LDAP://*ldap.server.name*/OU=ITDept, OU=users, OU=DC, OU=Corporate, DC=*mycompany*, DC=*mytld*''
WHERE objectCategory = ''Person'' AND objectClass = ''user''')

繰り返しますが...上記には二重引用符はありません...複数の一重引用符。

ADSIはに登録/リンクする必要があります

EXEC sp_addlinkedserver 'ADSI', 'Active Directory Service Interfaces', 'ADSDSOObject', 'adsdatasource'

アクセス許可に問題がある場合は、ADSIリンクサーバーの[セキュリティプロパティ]タブで使用するアカウントを設定できます。

于 2009-01-23T21:29:35.053 に答える