SQL Server エージェントのジョブの権限を与える方法

SQL Serverで、個別のデータベースに対して、権限を与えても、SQL Server エージェントのジョブの部分はSQL Server Management Studio(SSMS)には、「SQL Server エージェント」も「ジョブ」も表示されない。これの権限は、データベースの権限とは別につける必要がある。

SQL Serverのジョブ(SQL Server エージェント)に権限を付ける一番簡単な方法は、以下の操作でsysadmin権限の付与を行う。

  1. SSMSを使って、管理者権限のあるユーザでSQL Serverに接続する。
  2. SSMSのオブジェクトエクスプローラーで、「セキュリティ」「サーバー ロール」の順に開く(展開する)。
  3. サーバーロールに表示された「sysadmin」を右クリックして、プロパティを開く。
  4. プロパティの「メンバー」の「追加」をクリックする
  5. 権限を与えるユーザを指定して、OKをクリックする。

これで権限が付与されるので、権限を与えたユーザで、SSMSで接続して、「SQL Server エージェント」と「ジョブ」が表示されることを確認する。

もし、SQL Server エージェントだけの権限を与える必要がある場合は、データベースの「msdb」にあるロールを割り当てる。

  1. SSMSを使って、管理者権限のあるユーザでSQL Serverに接続する。
  2. 「セキュリティ」、「ログイン」から、SQL Server エージェントを使わせるユーザのプロパティを開く
  3. 「ユーザーマッピング」を開く。
  4. 「msdb」にチェックをいれ、選択した状態にする
  5. ロールの「SQLAgent~~~」で、最適な権限を選択して、OKをクリックする。

選択できるロールの概要は以下。

SQLAgentUserRole
→SSMSで接続したときに、SQL Serverエージェントが表示される。
 表示されるのは、接続ユーザの権限があるもののみ。

SQLAgentReaderRole
→SSMSで接続したときに、SQL Serverエージェントが表示される。
 他のユーザのSQL Serverのジョブも表示される。
 メニューで、ジョブが実行できるように見えるが、実行すると権限がないものはエラーになる。

SQLAgentOperatorRole
→SSMSで接続したときに、SQL Serverエージェントが表示される。
 SQL Serverのジョブの表示や実行ができる。

参考: https://learn.microsoft.com/ja-jp/sql/ssms/agent/sql-server-agent-fixed-database-roles?view=sql-server-ver15

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする