保護等級有兩個,一個是專案保護等級(Project Protection Level),一個是封裝保護等級(Package Protection Level ),用來加密機敏資料。專案和封裝保護等級兩者必須一致。
用SSDT建立一個新的Integration Services 專案,預設的專案和封裝保護等級兩者都是EncryptAllWithUserKey,自己習慣使用EncryptAllWithPassword,因為使用UserKey拿到別台電腦開啟封裝檔又會提示有正確的金鑰。另外DTExec參數可以設定解密密碼,可以設定Windows工作排程用bat直接呼叫DTExec執行,不一定要把dtsx匯入到SQL Server執行(匯入SQL Server執行會多一個SSISDB的資料庫)。
使用DTExec解密密碼參數
DTExec /f D:\XX.dtsx /De MyPassword
Access Control for Sensitive Data in Packages
https://msdn.microsoft.com/en-us/library/ms141747.aspx
保護等級使用EncryptAllWithUserKey,拿到別台電腦開啟的錯誤訊息
錯誤 1 載入 XX.dtsx 時發生錯誤: 無法將保護的 XML 節點 "DTS:Password" 解密,錯誤為 0x8009000B "機碼用在特定狀態時無效。"。您可能沒有存取這項資訊的權限。當發生密碼編譯錯誤時,就會發生這個錯誤。請確認有正確的金鑰。 D:\ XX.dtsx 1 1
專案保護等級設定
封裝保護等級設定
沒有留言:
張貼留言