次の方法で共有


SQL Server エージェントのセキュリティを実装する

SQL Server エージェントを使用すると、データベース管理者は、SQL Server エージェント プロキシによって決定される、そのジョブ ステップの実行に必要なアクセス許可のみを持つセキュリティ コンテキストで各ジョブ ステップを実行できます。 特定のジョブ ステップのアクセス許可を設定するには、必要なアクセス許可を持つプロキシを作成し、そのプロキシをジョブ ステップに割り当てます。 プロキシは、複数のジョブ ステップに対して指定できます。 同じアクセス許可を必要とするジョブ ステップでは、同じプロキシを使用します。

次のセクションでは、SQL Server エージェントを使用してジョブを作成または実行できるように、ユーザーに付与する必要があるデータベース ロールについて説明します。

SQL Server エージェントへのアクセスの許可

SQL Server エージェントを使用するには、ユーザーが次の固定データベース ロールの 1 つ以上のメンバーである必要があります。

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

これらのロールは、msdb データベースに格納されます。 既定では、これらのデータベース ロールのメンバーであるユーザーはいません。 これらのロールのメンバーシップは、明示的に付与する必要があります。 sysadmin 固定サーバー ロールのメンバーであるユーザーは、SQL Server エージェントへのフル アクセス権を持ち、SQL Server エージェントを使用するためにこれらの固定データベース ロールのメンバーである必要はありません。 ユーザーがこれらのデータベース ロールのメンバーまたは sysadmin ロールのメンバーでない場合、SQL Server Management Studio を使用して SQL Server に接続するときに、SQL Server エージェント ノードを使用できません。

これらのデータベース ロールのメンバーは、所有するジョブを表示および実行し、既存のプロキシ アカウントとして実行されるジョブ ステップを作成できます。 これらの各ロールに関連付けられている特定のアクセス許可の詳細については、「SQL Server エージェント固定データベース ロール 」を参照してください。

sysadmin 固定サーバー ロールのメンバーには、プロキシ アカウントを作成、変更、削除するためのアクセス許可があります。 sysadmin ロールのメンバーには、プロキシを指定しないジョブ ステップを作成する権限がありますが、代わりに SQL Server エージェント サービス アカウントとして実行されます。これは、SQL Server エージェントの起動に使用されるアカウントです。

ガイドライン

次のガイドラインに従って、SQL Server エージェントの実装のセキュリティを強化します。

  • プロキシ専用のユーザー アカウントを作成し、これらのプロキシ ユーザー アカウントのみを使用してジョブ ステップを実行します。

  • プロキシ ユーザー アカウントに必要なアクセス許可のみを付与します。 特定のプロキシ アカウントに割り当てられているジョブ ステップを実行するために実際に必要なアクセス許可のみを付与します。

  • Windows Administrators グループのメンバーである Microsoft Windows アカウントで SQL Server エージェント サービスを実行しないでください。

  • プロキシは、SQL Server 資格情報ストアと同じくらい安全です。

  • ユーザーの書き込み操作で NT イベント ログに書き込むことができる場合は、SQL Server エージェントを使用してアラートを生成できます。

  • NT 管理者アカウントをサービス アカウントまたはプロキシ アカウントとして指定しないでください。

  • SQL Server と SQL Server エージェントは、互いの資産にアクセスできます。 2 つのサービスは 1 つのプロセス領域を共有し、SQL Server エージェントは SQL Server サービスの sysadmin です。

  • TSX が MSX に参加すると、MSX sysadmins は SQL Server の TSX インスタンスを完全に制御します。

  • ACE は拡張機能であり、それ自体を呼び出すことはできません。 ACE は Chainer ScenarioEngine.exe (Microsoft.SqlServer.Chainer.Setup.exe とも呼ばれます) によって呼び出されるか、別のホスト プロセスによって呼び出すことができます。

  • ACE は、SSDP が所有する次の構成 DLL に依存します。これらの API の DLL は ACE によって呼び出されるためです。

    • SCO - Microsoft.SqlServer.Configuration.Sco.dll(仮想アカウントの新しい SCO 検証を含む)

    • クラスター - Microsoft.SqlServer.Configuration.Cluster.dll

    • SFC - Microsoft.SqlServer.Configuration.SqlConfigBase.dll

    • 拡張機能 - Microsoft.SqlServer.Configuration.ConfigExtension.dll

こちらもご覧ください

定義済みのロール
sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
SQL Server データベース エンジンと Azure SQL Database のセキュリティ センター