SQL Server 2005では、SQLエージェントサービスアカウント以外のものを実行するようにSSISパッケージをスケジュールすることは可能ですか?
データベースに接続してストアドプロシージャを実行するSSISパッケージがあります。私の基準は、パッケージまたはパッケージ構成でユーザー名/パスワードを指定しないことです。そのため、統合認証を使用したいと思います。
問題は、デフォルトでは、ジョブのステップがSQLエージェントサービスアカウントとして実行され、サーバーグループが、パッケージが実行するストアドプロシージャに対する実行権限をそのアカウントに付与したくないことです。そのため、ステップで別のアカウントを指定する方法を見つけようとしているので、パッケージは別のコンテキストで実行されます。それは可能ですか?
SQLエージェントジョブからSSISパッケージを実行する場合は、プロキシを作成できます。詳細については、 ここ を確認してください。
SQL Server ManagementStudioを介してSQL Server Agent
にアクセスできる場合は、グラフィカルユーザーインターフェイスを使用してジョブを作成する手順を次に示します。この手順では、SQLエージェントサービスアカウントを使用してSSISを実行するSQLジョブを作成する方法と、別の資格情報を使用して別のアカウントで実行するプロキシを作成する方法を示します。
SQL Server ManagementStudioに移動します。スクリーンショット#1に示すように、SQL Server Agent
を展開し、ジョブを右クリックして、New Job...
を選択します。
名前を入力すると、デフォルトで所有者がジョブを作成するアカウントになりますが、要件に応じて変更できます。必要に応じてカテゴリを割り当て、説明も入力します。スクリーンショット#2を参照してください。
スクリーンショット#に示すように、[ステップ]セクションで[New...
]をクリックします。
[新しいジョブステップ]ダイアログで、ステップ名を入力します。タイプからSQL Server Inegration Services Package
を選択します。このステップは、デフォルトでSQL Agent Service Account
で実行されます。パッケージソースをFile system
として選択し、省略記号をクリックしてパッケージパスを参照します。これにより、パッケージパスが入力されます。スクリーンショット#4を参照してください。 SQL Agent Service Account
でステップを実行したくない場合は、ステップ#8 --9を参照して方法を確認してください。別のアカウントを使用できます。
パッケージのSSIS構成ファイル(.dtsConfig)がある場合は、Configurationsタブをクリックし、スクリーンショット#5に示すように構成ファイルを追加します。
[OK]をクリックすると、スクリーンショット#6に示すように、手順1のパッケージがあります。同様に、さまざまなステップを作成できます。
ジョブが作成されたら、ジョブを右クリックしてScript Job as --> CREATE To --> New Query Editor Window
を選択し、スクリーンショット#7に示すようにスクリプトを生成できます。
別のアカウントでSSISステップを実行するには、Management Studioで、スクリーンショット#8に示すようにSecurity --> right-click on Cedentials --> select New Credential...
に移動します。
New Credential
ダイアログで、SQLジョブでSSISステップを実行するための資格情報名、Windowsアカウント、およびパスワードを入力します。スクリーンショット#9を参照してください。スクリーンショット#1に示すように、資格情報が作成されます。
次に、プロキシを作成する必要があります。 Management Studioで、スクリーンショット#11に示すように、SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy...
に移動します。
スクリーンショット#12に示すように、[新しいプロキシアカウント]ウィンドウで、プロキシ名を入力し、新しく作成した資格情報を選択し、説明を入力して、SQLServer統合サービスパッケージを選択します。スクリーンショット#1に示すように、プロキシアカウントを作成する必要があります。
ここで、SQLジョブのステップに戻ると、新しく作成されたプロキシアカウントが実行ドロップダウンに表示されます。スクリーンショット#14を参照してください。
お役に立てば幸いです。
スクリーンショット#1:
スクリーンショット#2:
スクリーンショット#3:
スクリーンショット#4:
スクリーンショット#5:
スクリーンショット#6:
スクリーンショット#7:
スクリーンショット#8:
スクリーンショット#9:
スクリーンショット#10:
スクリーンショット#11:
スクリーンショット#12:
スクリーンショット#13:
スクリーンショット#14:
SQL 2012で、選択したユーザーアカウントをプロキシにすることが許可されていないというエラーが発生しました。次のクエリを使用すると、この問題が解決しました。
use msdb
GO
exec sp_grant_login_to_proxy @login_name = 'MyLoginName', @proxy_name= 'proxy_SSIS'