私はこれを強固な解決策なしで多く探しました。SQLエージェントのSSRSサブスクリプションに失敗しました - ジョブの所有者がサーバーアクセスを持っているかどうかを確認できません
私はSQL 2016インスタンスと同じサーバー上に新しいSSRSインスタンスを設定しました。問題は、レポートがスケジュールされているときに、SQL ServerでSqlエージェントジョブを作成し、SQLエージェントが次のエラーを出してしまうという問題です。
ジョブが失敗しました。ジョブ17F8E31D-0838-4829-8C3C-E3FE5BBD3483 の所有者 (MyDomain \ ReportService)にサーバーアクセスがある(理由:Windowsの情報を取得できませんでした) 。[SQLSTATE 42000](エラー15404))。
現在の設定:サービスアカウントとしてActive Directoryアカウントを使用して
- SSRSが レポートサービス
- SQL Serverの2016エンジンと呼ばれるサービス アカウントとしてActive Directoryアカウントを使用していると呼ばれますSqlService
- SSRSとSQLデータベースの両方が同じマシンにある
-
変更を:ルSqlServiceはシステム管理者であり、他のすべての 権限を持ち、かつ非SSRSの仕事は私の研究から、細かい
を実行し、私は3つの方法のいずれかでこの問題を解決できることを確認SSRSによって作成されたSSRS SQLエージェントジョブは、SAによって所有されます( デフォルトでは、ジョブはMyDomain \ ReportServiceによって所有されています)。問題は ですが、ユーザーが をSSRS経由で新規購読するか、SSRS がデフォルトでこのサービスを所有者として使用するため、進行中のスクリプトを作成するたびに、これを行う必要があります。そして私はこの が私の前の雇用主で行われていないことを知っています。
SqlServiceを ドメイン管理者にすることができます。私はセキュリティ上の理由からこれをやりたいとは思わない、明らかに 。
私はセキュリティ ポリシーを経由して自分のドメイン上のSqlService「SeImpersonatePrivilege」 (ログイン後にクライアントを偽装)を与えることができます。これも機能しますが、 という方がいいでしょう。 これを設定しても、SqlServiceが明示的にReportServiceに偽装されないように制限されているため、これもセキュリティ上のリスクだと私は考えています。
だから、私の質問は、うまくいけばSSRSを設定している人たちから、SQL ServerはSSRSサブスクリプションを実行することを可能にするためのベストプラクティス何ですか?私たちの環境内の何かがアクセス権を賢明に混乱させている可能性がありますが、私はほとんどが私がどのようにアドバイスを探しているのでしょうかこれを設定してください。大変ありがとうございます。