SQL Server エージェントのロール
RDS for SQL Server は、ジョブを管理するためのさまざまなレベルのアクセス許可を持つ、以下の SQL Server エージェントのロールをサポートしています。
SQLAgentUserRole
アクセス許可
独自のジョブ、スケジュール、オペレーターを作成および管理する
独自のジョブとスケジュールのプロパティを表示する
他のユーザーが作成したジョブは表示または管理できない
このロールは、独自のジョブを作成および管理する必要があるが、他のユーザーが作成したジョブへのアクセスを必要としないユーザーに適しています。
-
SQLAgentReaderRole
アクセス許可
SQLAgentUserRole のすべてのアクセス許可
すべてのジョブとスケジュール (他のユーザーが作成したものを含む) を一覧表示する
すべてのジョブのプロパティを表示する
ジョブ履歴を確認する
このロールは、すべてのジョブのステータスをモニタリングする必要があるが、ジョブを管理する必要がないユーザーに適しています。
-
SQLAgentOperatorRole
アクセス許可
SQLAgentUserRole と SQLAgentReaderRole のすべてのアクセス許可
ジョブを実行、停止、または開始する
ジョブ履歴を管理する
ジョブとスケジュールを有効/無効にする
オペレーターとプロキシを表示する
このロールは、最も包括的なアクセス許可を提供するものであり、すべてのジョブを完全に制御する必要があるユーザーに適しています。
SQL Server ログインにロールを割り当てるには、次のコマンドを使用します。
USE msdb; EXEC sp_addrolemember 'SQLAgentOperatorRole', '
username
';
RDS for SQL Server での SQLAgentOperatorRole の管理
現在のジョブを表示するには、SQLAgentOperatorRole を SQL Server ログインに追加し、データベースから切断する前にそれを削除する必要があります。
SQL Server Management Studio で SQL Server エージェントツリーを視覚化するには、次の手順に従います。
SQL Server Management Studio (SSMS) で SQL Server エージェントを表示する
-
RDS マスター認証情報を使用して RDS SQL Server インスタンスにログインし、目的のユーザーに SQLAgentUserRole を付与します。
USE msdb GO IF NOT EXISTS(SELECT name FROM sys.database_principals WHERE name = 'UserName') BEGIN CREATE USER UserName FROM LOGIN UserName END GO ALTER ROLE SQLAgentUserRole ADD MEMBER UserName GO GRANT ALTER ON ROLE::[SQLAgentOperatorRole] to UserName GO
これらのコマンドは、
msdb
データベースにユーザーが存在しない場合に作成します。また、SQLAgentUserRole にユーザーを追加し、SQL Server エージェントツリーを SSMS で表示できるようにします。最後に、SQLAgentOperatorRole に対する変更アクセス許可をユーザーに付与します。これにより、ユーザーはロールに対して自身を追加または削除できます。 -
上記のロールに自分自身を追加するには、ジョブを表示する必要があるユーザーを使用して RDS SQL Server インスタンスに接続し、次のスクリプトを実行します。
use msdb go ALTER ROLE SQLAgentOperatorRole ADD MEMBER UserName GO
次に、[ジョブ] フォルダを右クリックし、[更新] を選択します。
-
このアクションを実行すると、[ジョブ] タブに [+] (プラス) ボタンが表示されます。クリックして SQL Server エージェントジョブのリストを展開します。
-
重要
RDS SQL Server インスタンスから切断する前に、SQLAgentOperatorRole から自分自身を削除する必要があります。
SQLAgentOperatorRole からログインを削除するには、Management Studio を切断または終了する前に次のクエリを実行します。
USE msdb GO ALTER ROLE SQLAgentOperatorRole DROP MEMBER UserName GO
詳細については、「RDS SQL Server での SQLAgentOperatorRole の活用