SSISでProtectionLevelをServerStorageにするとデータベース ロールで
アクセス制御を行う
ProtectionLevelはVisual Stadioのプロパティで設定するのではなく、
SSISパッケージストアへ登録する際に行うので注意
以下、ProtectionLevelがServerStorageで作成〜実行までの手順のメモ
1.パッケージを作成する
2.パッケージのプロパティを以下のように設定する
ProtectionLevel→EncryptSensitiveWithPassword
PackagePassword→パッケージのパスワード(任意)
(なお、ProtectionLevelは後で変更するのでEncryptSensitiveWithPasswordで
なくても問題なし)
3.Integration Servicesに接続し、「パッケージのインポート」
→「保護レベル」を「アクセスコントロールをサーバストレージおよびロールに依存する」に変更する
(登録の際、PackagePasswordの入力が求められる)
dtexec /SQL "パッケージ名" /Ser サーバ名"
DECLARE @ret_code int ------ 戻り値判別用 EXECUTE @ret_code = master.dbo.XP_CMDSHELL 'dtexec /SQL "パッケージ名" /Ser サーバ名 ' , no_output SELECT @ret_code
※XP_CMDSHELLはでデフォルトでは実行権限がないので実行権限を付与する必要がある
動作確認環境:SQL Server 2008 Developer