SQL Server エージェント プロキシの作成
このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 で SQL Server エージェント プロキシを作成する方法について説明します。
SQL Server エージェント プロキシ アカウントは、ジョブ ステップを実行できるセキュリティ コンテキストを定義します。 各プロキシには対応するセキュリティ資格情報が 1 つあります。 特定のジョブ ステップに権限を設定するには、SQL Server エージェント サブシステムに必要な権限のあるプロキシを作成し、このプロキシをジョブ ステップに割り当てます。
このトピックの内容
作業を開始する準備:
制限事項と制約事項
セキュリティ
SQL Server エージェント プロキシを作成する方法:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
制限事項と制約事項
資格情報を用意していない場合は、プロキシを作成する前に、まず資格情報を作成する必要があります。
SQL Server エージェント プロキシは、資格情報を使用して Windows ユーザー アカウントに関する情報を格納します。 資格情報で指定されているユーザーには、SQL Server を実行しているコンピューターで "バッチ ジョブとしてログオン" するためのアクセス許可が必要です。
SQL Server エージェントは、ジョブ ステップを実行するごとに、プロキシからサブシステムへのアクセス許可を確認し、アクセスを確立します。 プロキシにサブシステムへのアクセス許可がない場合、ジョブ ステップは失敗します。 プロキシにアクセス許可がある場合、SQL Server エージェントはプロキシで指定されているユーザーの権限を借用してジョブ ステップを実行します。
プロキシを作成しても、そのプロキシの資格情報で指定したユーザーの権限は変更されません。 たとえば、SQL Server のインスタンスに接続する権限を持たないユーザーのプロキシを作成できます。 この場合、このプロキシを使用するジョブ ステップから SQL Server に接続することはできません。
ユーザーのログインにプロキシへのアクセス許可がある場合、またはプロキシへのアクセス許可のあるロールにユーザーが属している場合、このユーザーはジョブ ステップでプロキシを使用できます。
セキュリティ
権限
sysadmin 固定サーバー ロールのメンバーだけに、プロキシ アカウントを作成、変更、または削除できる権限があります。 固定サーバー ロール sysadmin のメンバーではないユーザーは、msdb データベースの SQL Server エージェント固定データベース ロールである SQLAgentUserRole、SQLAgentReaderRole、または SQLAgentOperatorRole のいずれかに追加されないと、プロキシを使用できません。
プロキシに加えて資格情報を作成する場合は、ALTER ANY CREDENTIAL 権限が必要です。
[Top]
SQL Server Management Studio の使用
SQL Server エージェント プロキシを作成するには
オブジェクト エクスプ ローラーで、SQL Server エージェント プロキシを作成するサーバーをプラス記号をクリックして展開します。
プラス記号をクリックして [SQL Server エージェント] を展開します。
[プロキシ] フォルダーを右クリックし、[新しいプロキシ] をクリックします。
[新しいプロキシ アカウント] ダイアログ ボックスの [全般] ページで、[プロキシ名] ボックスにプロキシ アカウントの名前を入力します。
[資格情報名] ボックスに、プロキシ アカウントが使用するセキュリティ資格情報の名前を入力します。
[説明] ボックスに、プロキシ アカウントの説明を入力します。
[以下のサブシステムに対してアクティブ] から、このプロキシ用の適切なサブシステムを選択します (複数選択可能)。
[プリンシパル] ページで、プロキシ アカウントへのアクセスを許可するログインまたはロールを追加するか、あるいは拒否するログインまたはロールを削除します。
完了したら、[OK] をクリックします。
[Top]
Transact-SQL の使用
SQL Server エージェント プロキシを作成するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。
-- creates credential CatalogApplicationCredential USE msdb ; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO -- creates proxy "Catalog application proxy" and assigns the credential 'CatalogApplicationCredential' to it. EXEC dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential' ; GO -- grants the proxy "Catalog application proxy" access to the ActiveX Scripting subsystem. EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2 ; GO
詳細については、以下のトピックを参照してください。
[Top]