設定封裝的保護等級
您第一次在 Business Intelligence Development Studio 中開發 SQL Server 2005 Integration Services (SSIS) 封裝時,會設定封裝的保護等級。稍後在部署封裝、從 SQL Server Management Studio 中的 Integration Services 匯入或匯出封裝,或將封裝從 Business Intelligence Development Studio 複製到 SQL Server、「SSIS 封裝存放區」或檔案系統服務時,都可以更新封裝保護等級。例如,如果您使用其中一個使用者金鑰保護等級選項,在電腦上建立和儲存封裝,則當您將封裝提供給其他使用者時,可能要變更保護等級,否則那些使用者就無法開啟封裝。
下表描述 Integration Services 提供的保護等級。括號中的值是 DTSProtectionLevel 的值。這些值會顯示在 [屬性] 視窗中,當您在 Business Intelligence Development Studio 中處理封裝時,可以使用該視窗設定封裝物件的屬性。
保護等級 | 描述 |
---|---|
不要儲存機密資料 (DontSaveSensitive) |
儲存時隱藏封裝中的機密資訊。此保護等級不加密,但是會防止標記為機密資料的屬性與封裝一起儲存,因此其他使用者無法使用機密資料。如果其他使用者開啟封裝,則機密資訊會以空白取代,該使用者必須提供機密資訊。 |
所有資料都以密碼加密 (EncryptAllWithPassword) |
使用密碼加密整個封裝。封裝是使用建立或匯出封裝時使用者提供的密碼來加密的。若要在「SSIS 設計師」中開啟封裝或使用 dtexec 命令提示公用程式執行封裝,使用者必須提供封裝密碼。如果沒有密碼,使用者就無法存取或執行封裝。 |
所有資料以使用者金鑰加密 (EncryptAllWithUserKey) |
使用以使用者設定檔為基礎的金鑰加密整個封裝。只有使用相同設定檔的相同使用者才可以載入封裝。封裝是使用以建立或匯出封裝之使用者為基礎的金鑰來加密的。只有建立或匯出封裝的使用者才可以在「SSIS 設計師」中開啟封裝,或使用 dtexec 命令提示公用程式執行封裝。 |
機密資料以密碼加密 (EncryptSensitiveWithPassword) |
只使用密碼加密封裝中的機密資訊。DPAPI 用於此加密。機密資料會作為封裝的一部份進行儲存,但該資料會使用建立或匯出封裝時目前使用者所提供的密碼進行加密。若要在「SSIS 設計師」中開啟封裝,使用者必須提供封裝密碼。如果未提供密碼,則會開啟封裝但不提供機密資料,目前的使用者必須為機密資料提供新值。如果使用者嘗試在未提供密碼的情況下執行封裝,則封裝執行會失敗。如需有關密碼和命令列執行的詳細資訊,請參閱<dtexec 公用程式>。 |
機密資料以使用者金鑰加密 (EncryptSensitiveWithUserKey) |
只使用以目前使用者為基礎的金鑰加密封裝中的機密資訊。只有使用相同設定檔的相同使用者才可以載入封裝。如果其他使用者開啟封裝,則機密資訊會以空白取代,且目前的使用者必須為機密資料提供新值。如果使用者嘗試執行封裝,則封裝執行會失敗。DPAPI 用於此加密。 |
依賴伺服器儲存體進行加密 (ServerStorage) |
使用 SQL Server 資料庫角色保護整個封裝。只有在將封裝儲存到 SQL Server msdb 資料庫時,才支援此選項。將封裝從 Business Intelligence Development Studio 儲存到檔案系統時不支援此選項。 |
使用密碼加密封裝的封裝保護等級也需要您提供密碼。如果您將保護等級從不使用密碼變更為使用密碼的等級,則會提示您輸入密碼。
封裝保護等級所使用的加密是使用「Microsoft 資料保護 API (DPAPI)」(「加密 API (Crypto API)」的一部份) 來執行的。
Integration Services 將「.NET Framework 類別庫 (FCL)」中金鑰長度為 192 位元的「三重 DES」加密演算法用於使用密碼的保護等級。
對於使用使用者金鑰的保護等級,Integration Services 會使用 DPAPI 標準。如需有關 DPAPI 的詳細資訊,請參閱 MSDN Library,其網址為 https://msdn.microsoft.com/library。
當您使用 [不要儲存機密資料] (DontSaveSensitive) 保護等級時,不會儲存封裝中的機密資訊。
對於所有值,機密資訊定義為:
- 連接字串的密碼部份。不過,如果您選擇加密所有項目的選項,則會將整個連接字串視為機密資料。
- 標記為機密資料之工作產生的 XML 節點。XML 節點的標記由 Integration Services 控制,使用者無法變更。
- 標記為機密資料的任何變數。變數的標記由 Integration Services 控制。
儲存到 msdb 資料庫的封裝也可以使用固定的資料庫層級角色來保護。Integration Services 包括三個用以對封裝指派權限的固定資料庫層級角色:db_dtsadmin、db_dtsltduser 和 db_dtsoperator。如需詳細資訊,請參閱<Integration Services 角色>和<資料庫層級角色>。
請參閱
工作
匯入和匯出封裝
如何:使用 Integration Services 服務匯入封裝
如何:使用 Integration Services 服務匯出封裝
概念
Integration Services 封裝
Integration Services 的安全性考量