[SQL SERVER][SSIS]設定Package的保護等級

[SQL SERVER][SSIS]設定Package的保護等級

昨天同事參考[SQL SERVER][SSIS]如何使用Store Procedure呼叫SSIS Package文章,

想利用正式環境SQL Agent執行自己所開發的SSIS Package,

但是頻頻報錯無法順利執行,

他問我是否有遺漏了什麼?還是我藏了什麼....

這裡透過這篇文章補充一下,一般我們都會在自己電腦開發設計SSIS,

SSIS預設ProtectionLevel=EncryptSensitiveWithUserKey,

如果你把該Package移到另一台Server執行的話(不同使用者金鑰),

因為使用者設定檔不同,所以無法解密該Package一些敏感資料(如資料庫連線字串密碼..等),

所以一般我都使用 EncryptAllWithPassword Level設定密碼來處理Package中的敏感資料,設定如下

image

記得輸入密碼。

 

當你在使用SQL Server Agent設定該Package時,就會跳出密碼輸入視窗

image

 

這時Agent 就會加入解密指令

image

 

 

執行如下

image

設定SQL2K12A Instance 的SQL Agent 執行該SSSIS Package。

 

 

SQL Agent Log

image

可以看到該SSIS是連線到另一台SQL Server Instance。

 

 

結果如下

image

 

 

當然還有其他解決方法,大家可以參考從 SQL Server Agent 作業步驟呼叫 SSIS 封裝時,SSIS 封裝未執行

 

 

 

參考

從 SQL Server Agent 作業步驟呼叫 SSIS 封裝時,SSIS 封裝未執行

封裝中的敏感性資料存取控制