このトピックでは、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 でSQL Server エージェント プロキシを作成する方法について説明します。
SQL Server エージェント プロキシ アカウントは、ジョブ ステップを実行できるセキュリティ コンテキストを定義します。 各プロキシには対応するセキュリティ資格情報が 1 つあります。 特定のジョブ ステップに権限を設定するには、SQL Server エージェント サブシステムに必要な権限のあるプロキシを作成し、このプロキシをジョブ ステップに割り当てます。
このトピックの内容
作業を開始する準備:
SQL Server エージェント プロキシを作成する方法:
はじめに
制限事項と制約事項
資格情報を用意していない場合は、プロキシを作成する前に、まず資格情報を作成する必要があります。
SQL Server エージェント プロキシは、資格情報を使用して Windows ユーザー アカウントに関する情報を格納します。 資格情報で指定されているユーザーには、 SQL Server を実行しているコンピューターで "バッチ ジョブとしてログオン" するためのアクセス許可が必要です。
SQL Server エージェントは、ジョブ ステップを実行するごとに、プロキシからサブシステムへのアクセス許可を確認し、アクセスを確立します。 プロキシにサブシステムへのアクセス許可がない場合、ジョブ ステップは失敗します。 プロキシにアクセス許可がある場合、 SQL Server エージェントはプロキシで指定されているユーザーの権限を借用してジョブ ステップを実行します。
プロキシを作成しても、そのプロキシの資格情報で指定したユーザーの権限は変更されません。 たとえば、SQL Server のインスタンスに接続する権限を持たないユーザーのプロキシを作成できます。 この場合、このプロキシを使用するジョブ ステップから SQL Server に接続することはできません。
ユーザーのログインにプロキシへのアクセス許可がある場合、またはプロキシへのアクセス許可のあるロールにユーザーが属している場合、このユーザーはジョブ ステップでプロキシを使用できます。
セキュリティ
アクセス許可
sysadmin 固定サーバー ロールのメンバーだけに、プロキシ アカウントを作成、変更、または削除できる権限があります。 固定サーバー ロール sysadmin のメンバーではないユーザーは、msdb データベースの SQL Server エージェント固定データベース ロールである SQLAgentUserRole、SQLAgentReaderRole、または SQLAgentOperatorRole のいずれかに追加されないと、プロキシを使用できません。
プロキシに加えて資格情報を作成する場合は、
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
詳細については、次を参照してください。