關於我

我的相片
用心思考、保持熱情,把工作上的經驗作分享與紀錄。希望能夠跟大家一起不斷的成長~

SSIS 敏感字眼加密方式

在使用SQL Server Business Intelligence Development Studio設計SSIS Package時,

如果Package中有儲存如DB登入之密碼...等敏感字眼。

通常預設會加密後保存,防止重要資訊外洩。

 

今天便要好好介紹內建的幾種加密方式

詳細內容亦可參考以下微軟文章 http://msdn.microsoft.com/zh-tw/library/ms141747.aspx

 

保護等級 描述

不要儲存機密資料 (DontSaveSensitive)

儲存封裝時,隱藏封裝中的機密屬性值。此保護等級不加密,但是會防止標記為機密資料的屬性與封裝一起儲存,因此其他使用者無法使用機密資料。如果其他使用者開啟封裝,則機密資訊會以空白取代,該使用者必須提供機密資訊。

dtutil 公用程式 (dtutil.exe) 搭配使用時,這個保護等級會對應至值 0。

所有資料都以密碼加密 (EncryptAllWithPassword)

使用密碼加密整個封裝。封裝是使用建立或匯出封裝時使用者提供的密碼來加密的。若要在「SSIS 設計師」中開啟封裝或使用 dtexec 命令提示公用程式執行封裝,使用者必須提供封裝密碼。如果沒有密碼,使用者就無法存取或執行封裝。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 3。

所有資料以使用者金鑰加密 (EncryptAllWithUserKey)

使用以目前使用者設定檔為基礎的金鑰加密整個封裝。只有建立或匯出封裝的使用者才可以在「SSIS 設計師」中開啟封裝,或使用 dtexec 命令提示公用程式執行封裝。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 4。

ms141747.note(zh-tw,SQL.100).gif附註:
對於使用使用者金鑰的保護等級,Integration Services 會使用 DPAPI 標準。如需有關 DPAPI 的詳細資訊,請參閱 MSDN Library,其網址為 http://msdn.microsoft.com/library

機密資料以密碼加密 (EncryptSensitiveWithPassword)

使用密碼僅加密封裝中的機密屬性值。DPAPI 用於此加密。機密資料會做為封裝的一部份進行儲存,但該資料會使用建立或匯出封裝時目前使用者所提供的密碼進行加密。若要在「SSIS 設計師」中開啟封裝,使用者必須提供封裝密碼。如果未提供密碼,則會開啟封裝但不提供機密資料,目前的使用者必須為機密資料提供新值。如果使用者嘗試在未提供密碼的情況下執行封裝,則封裝執行會失敗。如需有關密碼和命令列執行的詳細資訊,請參閱<dtexec 公用程式>。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 2。

機密資料以使用者金鑰加密 (EncryptSensitiveWithUserKey)

使用以目前使用者設定檔為基礎的金鑰,僅加密封裝中的機密屬性值。只有使用相同設定檔的相同使用者才可以載入封裝。如果其他使用者開啟封裝,則機密資訊會以空白取代,且目前的使用者必須為機密資料提供新值。如果使用者嘗試執行封裝,則封裝執行會失敗。DPAPI 用於此加密。

dtutil 公用程式搭配使用時,這個保護等級會對應至值 1。

ms141747.note(zh-tw,SQL.100).gif附註:
對於使用使用者金鑰的保護等級,Integration Services 會使用 DPAPI 標準。如需有關 DPAPI 的詳細資訊,請參閱 MSDN Library,其網址為 http://msdn.microsoft.com/library

依賴伺服器儲存體進行加密 (ServerStorage)

使用 SQL Server 資料庫角色保護整個封裝。只有將封裝儲存到 SQL Server msdb 資料庫時,才支援此選項。將封裝從 Business Intelligence Development Studio 儲存到檔案系統時不支援此選項。

 

而開發預設加秘方式為 EncryptSensitiveWithUserKey,因此以User設定檔為Key加密。

但通常開發SSIS Package的為一台開發機。而實際執行之環境為另一台正式機。

所以User一定式不同的,導至每次開發完成的Package都需要於正式機上在開啟重新設定Password才可以正確運作等問題 !

擷取

沒有留言:

張貼留言