1

OpenQuerySSMS から ADSI を照会するために使用できます。

SELECT * 
FROM OpenQuery ( 
  ADSI,  
  'SELECT displayName, telephoneNumber, mail
        , sAMAccountName        
        , division
        , brancheNumber

  FROM ''LDAP://DC=mydomain,DC=com''
  WHERE objectClass =  ''Person'' 
    AND objectCategory = ''User''

  ')

今、これを SSRS で使用したいのですが、ローカルでは問題なく動作します。ただし、レポートを SharePoint サイトに展開した後は、常に次のようなエラーが表示されます。

レポートの処理中にエラーが発生しました。(rsProcessingAborted)
共有データ セット 'DataSet1' の実行に失敗しました。(rsDataSetExecutionError)
データセット 'DataSet1' のクエリの実行に失敗しました。(rsErrorExecutingCommand)
クエリー「select displayName, telephoneNumber, mail , sAMAccountName , division , brancheNumber FROM 'LDAP://mydomain,DC=com' WHERE objectClass = 'Person' AND objectCategory = 'User'」を OLE DB プロバイダーに対して実行できません」リンク サーバー "ADSI" の ADsDSOObject"。

理由がわかりませんでした。だから私は別のアプローチを試しました.SQLジョブを使用してopenqueryを実行し、データをテーブルに保存します。しかし、私が何をしようとしても、決して成功しませんでした。誰かが前にこれをしましたか?これはエラーです (ADSI でユーザーが mydomain\admin として設定され、このアカウントのローカル ログインが Impersonate として設定され、このセキュリティ コンテキストを使用して作成されるように設定され、mydomain\admin がリモート ログイン (およびそのパスワード) として設定されている場合に実行):

ユーザーとして実行: mydomain\admin。現在のセキュリティ コンテキストが信頼されていないため、リモート サーバーへのアクセスは拒否されます。[SQLSTATE 42000] (エラー 15274)。ステップは失敗しました。

SQL ジョブで「Run As User」を削除すると、エラーは次のようになります。

ユーザーとして実行: NT AUTHORITY\NETWORK SERVICE。リンク サーバー "ADSI" の OLE DB プロバイダー "ADsDSOObject" がエラーを報告しました。プロバイダは、ユーザーが操作を実行する権限を持っていなかったことを示しています。[SQLSTATE 42000] (エラー 7399) クエリ "SELECT sAMAccountName, mail, division, brancheNumber FROM 'LDAP://mydomain,DC=com' WHERE objectClass = 'Person' AND objectCategory = 'User' " の準備中にエラーが発生しましたリンク サーバー "ADSI" の OLE DB プロバイダー "ADsDSOObject" に対する実行。[SQLSTATE 42000] (エラー 7321)。ステップは失敗しました。

これの目的は、クエリを実行するユーザーの AD からの属性を使用して、SQL のフィールドをクエリすることです。これを行うための提案はありますか?

ありがとう

4

0 に答える 0