ServerStorage


SSISでProtectionLevelをServerStorageにするとデータベース ロールで
アクセス制御を行う


ProtectionLevelはVisual Stadioのプロパティで設定するのではなく、
SSISパッケージストアへ登録する際に行うので注意



以下、ProtectionLevelがServerStorageで作成〜実行までの手順のメモ


1.パッケージを作成する


2.パッケージのプロパティを以下のように設定する
ProtectionLevel→EncryptSensitiveWithPassword
PackagePassword→パッケージのパスワード(任意)
(なお、ProtectionLevelは後で変更するのでEncryptSensitiveWithPasswordで
 なくても問題なし)


3.Integration Servicesに接続し、「パッケージのインポート」
 →「保護レベル」を「アクセスコントロールをサーバストレージおよびロールに依存する」に変更する
 (登録の際、PackagePasswordの入力が求められる)


登録したSSISコマンドプロンプトから実行する

dtexec  /SQL "パッケージ名" /Ser サーバ名"


登録したSSISSQLから実行する

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