OpenQuery
SSMS から 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 のフィールドをクエリすることです。これを行うための提案はありますか?
ありがとう