2016-07-28 4 views
0

ユーザー情報を格納するActive Directory(LDAP)があります。 TSQLを使用してアクセスしようとしていますが、認証に問題があります。TSQL:LDAPからユーザーデータにアクセスする

LDAPは、この(私はデータを編集した)のようになります。

enter image description here

ユーザーは、次のプロパティがあります。今

enter image description here

を、私が取得しようとしていますOPENROWSETを使用してSQL ServerからのTSQLクエリを介してこのユーザーからの情報を次のように入力します。

SELECT * 
FROM 
OPENROWSET('ADSDSOObject','adsdatasource'; 'domain.com.io\test';'the_sha1_pass', 
'SELECT givenname 
    FROM ''LDAP://domain.com.io/ou=Users, 
     dc=domain,dc=com,dc=io'' WHERE givenname = ''Test'' 
     ') 
私はオーバー照会しようとしているユーザの認証を送信する必要があれば、私は知りません、今

Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider ' ADSDSOObject ' reported an error. The provider indicates that the user did not have the permission to perform the operation.

、または資格情報I:私はそれを実行したとき

は、しかし、私は次のエラーを取得しますLDAPAdminとの接続に使用します。それを送信しなければならない場合は、既に暗号化されているか、暗号化されていないものを送信する必要がありますか?

ありがとうございました。

+0

お使いのアカウントには、照会するOUをナビゲートする権限がありますか? –

+0

@JasonB。私は知らないのですが、どうすれば確認できますか?私はLDAPAdminを使用していますが、そのOUでユーザーを作成してパスワードを与えました – Heathcliff

答えて

0

私はWHERE句で、ユーザは、objectCategoryを追加

SELECT * FROM OpenQuery(ADSI, 'SELECT * FROM ''LDAP://kodyaz.com/DC=kodyaz,DC=com'' WHERE objectCategory=''user'' AND givenname = ''KODYAZ'' ') 

代替手段として、クエリ構造

SELECT * FROM OPENROWSET('ADSDSOObject','adsdatasource', 
'SELECT givenname 
    FROM ''LDAP://kodyaz.com/DC=kodyaz,DC=com'' WHERE givenname = ''KODYAZ'' 
     ') 

それとも

次試すことができ、ユーザ名とパスワードを削除することで、次のようにあなたのOPENROWSETのクエリを変更することができますOpenQueryコマンドのgivennameパラメータ付き

上記のSelectステートメントを実行する前に、ref3に示すようにadd LDAP as linked server in SQL Server rredチュートリアル

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

最初のクエリを実行すると、7321エラーが発生します。私は2番目を試しても、私は同じ7321エラーが発生します。私は問題が認証であると思うが、どのユーザーがどのパスワードを使ってADSI接続に行くべきかわからない、またはLDAP Adminからアクセス許可を与える方法 – Heathcliff

+0

私は自分のドメインのメンバーであり、私のドメインユーザーはLDAPサーバーを照会することができます。なぜなら、リンクされたサーバーでは、認証されたSQL Server接続の現在のユーザーとして認証部分を残し、現在のユーザー権限オプションを使用するように変更するからです。 – Eralper

関連する問題