SQL Server エージェントのロール - Amazon Relational Database Service

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 エージェントを表示する
  1. 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 に対する変更アクセス許可をユーザーに付与します。これにより、ユーザーはロールに対して自身を追加または削除できます。

  2. 上記のロールに自分自身を追加するには、ジョブを表示する必要があるユーザーを使用して RDS SQL Server インスタンスに接続し、次のスクリプトを実行します。

    use msdb go ALTER ROLE SQLAgentOperatorRole ADD MEMBER UserName GO

    次に、[ジョブ] フォルダを右クリックし、[更新] を選択します。

  3. このアクションを実行すると、[ジョブ] タブに [+] (プラス) ボタンが表示されます。クリックして SQL Server エージェントジョブのリストを展開します。

  4. 重要

    RDS SQL Server インスタンスから切断する前に、SQLAgentOperatorRole から自分自身を削除する必要があります。

    SQLAgentOperatorRole からログインを削除するには、Management Studio を切断または終了する前に次のクエリを実行します。

    USE msdb GO ALTER ROLE SQLAgentOperatorRole DROP MEMBER UserName GO

詳細については、「RDS SQL Server での SQLAgentOperatorRole の活用」を参照してください。