このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 で SQL Server エージェント プロキシを作成する方法について説明します。
SQL Server エージェント プロキシ アカウントは、ジョブ ステップを実行できるセキュリティ コンテキストを定義します。 各プロキシは、セキュリティ資格情報に対応します。 特定のジョブ ステップに権限を設定するには、SQL Server エージェント サブシステムに必要な権限のあるプロキシを作成し、このプロキシをジョブ ステップに割り当てます。
このトピックについて
作業を開始する準備:
次を使用して SQL Server エージェント プロキシを作成するには:
開始する前に
制限事項と制約条件
プロキシがまだ使用できない場合は、作成する前に資格情報を作成する必要があります。
SQL Server エージェント プロキシは、資格情報を使用して Windows ユーザー アカウントに関する情報を格納します。 資格情報で指定されたユーザーには、SQL Server が実行されているコンピューターに対する "バッチ ジョブとしてログオンする" アクセス許可が必要です。
SQL Server エージェントは、プロキシのサブシステム アクセスをチェックし、ジョブ ステップが実行されるたびにプロキシにアクセスできるようにします。 プロキシがサブシステムにアクセスできなくなった場合、ジョブ ステップは失敗します。 それ以外の場合、SQL Server エージェントは、プロキシで指定されたユーザーを偽装し、ジョブ ステップを実行します。
プロキシを作成しても、プロキシの資格情報で指定されているユーザーのアクセス許可は変更されません。 たとえば、SQL Server のインスタンスに接続するアクセス許可を持たないユーザーのプロキシを作成できます。 この場合、このプロキシを使用するジョブ ステップから SQL Server に接続することはできません。
ユーザーのログインがプロキシにアクセスできる場合、またはユーザーがプロキシにアクセスできる任意のロールに属している場合、ユーザーはジョブ ステップでプロキシを使用できます。
安全
権限
sysadmin 固定サーバー ロールのメンバーだけに、プロキシ アカウントを作成、変更、または削除できる権限があります。 sysadmin 固定サーバー ロールのメンバーではないユーザーは、SQLAgentUserRole、SQLAgentReaderRole、または SQLAgentOperatorRole のいずれかのプロキシを使用するために、msdb データベースの SQL Server エージェント固定データベース ロールのいずれかに追加する必要があります。
プロキシに加えて資格情報を作成する場合は、
ALTER ANY CREDENTIAL
権限が必要です。
SQL Server Management Studio の使用
SQL Server エージェント プロキシを作成するには
オブジェクト エクスプローラーで、プラス記号をクリックして、SQL Server エージェントでプロキシを作成するサーバーを展開します。
プラス記号をクリックして、SQL Server エージェントを展開してください。
[プロキシ] フォルダーを右クリックし、 [新しいプロキシ]を選択します。
[新しいプロキシ アカウント] ダイアログ ボックスの [全般] ページで、 [プロキシ名] ボックスにプロキシ アカウントの名前を入力します。
[資格情報名] ボックスに、プロキシ アカウントが使用するセキュリティ資格情報の名前を入力します。
[説明] ボックスに、プロキシ アカウントの説明を入力します。
[以下のサブシステムに対してアクティブ]から、このプロキシ用の適切なサブシステムを選択します (複数選択可能)。
[プリンシパル] ページで、プロキシ アカウントへのアクセスを許可するログインまたはロールを追加するか、あるいは拒否するログインまたはロールを削除します。
完了したら、 [OK] をクリックします。
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
詳細については、以下を参照してください。