適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
本文提供使用 SQL Server Management Studio (SSMS) 佈建 Always Encrypted 資料行主要金鑰和資料行加密金鑰的步驟。 確保在佈建加密金鑰時安裝 SSMS 的最新正式發行 (GA) 版本。
如需 Always Encrypted 金鑰管理概觀,包括最佳做法建議和重要安全性考量,請參閱 Always Encrypted 的金鑰管理概觀。
在 [新增資料行主要金鑰] 對話方塊中供應資料行主要金鑰
[新增資料行主要金鑰] 對話方塊可讓您產生資料行主要金鑰或挑選金鑰存放區中的現有金鑰,以及建立資料庫中所建立或所選取金鑰的資料行主要金鑰中繼資料。
使用物件總管,瀏覽至您資料庫下的 安全性 -> Always Encrypted 金鑰 節點。
以滑鼠右鍵按一下 [資料行主要金鑰] 節點,然後選取 [新增資料行主要金鑰...]。
在 [新增資料行主要金鑰] 對話方塊中,輸入資料行主要金鑰中繼資料物件的名稱。
選取金鑰存放區︰
憑證存放區 - 目前使用者 - 指出 Windows 憑證存放區中的目前使用者憑證存放區位置 (即個人存放區)。
憑證存放區 - 本機電腦 - 指出 Windows 憑證存放區中的本機電腦憑證存放區位置。
Azure Key Vault - 您需要登入 Azure (按一下 [登入])。 登入之後,就可以選取其中一個 Azure 訂用帳戶和金鑰保存庫或受控 HSM (需要 SSMS 18.9 或更新版本)。
注意
使用儲存在 Azure Key Vault 中 managed HSM 的資料行主要金鑰需要 SSMS 18.9 或更新版本。
金鑰存放區提供者 (KSP) :指出金鑰存放區,可透過實作新一代密碼編譯 (CNG) API 的金鑰存放區提供者 (KSP) 存取。 這種類型的存放區通常是硬體安全性模組 (HSM)。 在您選取此選項之後,需要挑選 KSP。 預設會選擇 Microsoft 軟體金鑰存放區提供者。 如果您想要使用儲存在 HSM 中的資料行主密鑰,請選擇您裝置的密鑰儲存提供者 (KSP)。在打開對話框之前,必須先在電腦上安裝和配置 KSP。
密碼編譯服務提供者 (CSP) :一種金鑰存放區,可透過實作密碼編譯 API (CAPI) 的密碼編譯服務提供者 (CSP) 存取。 這類存放區通常是硬體安全性模組 (HSM)。 在您選取此選項之後,您需要挑選一個 CSP(雲端服務提供商)。 如果您想要使用儲存在 HSM 中的欄位主要金鑰,請為您的裝置選取 CSP (必須先安裝並設定在電腦上,然後才能開啟對話方塊)。
注意
因為 CAPI 是已被取代的應用程式開發介面,所以預設會停用 [密碼編譯服務提供者 (CAPI)] 選項。 啟用方式是在 Windows 登錄的 [HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\sql13\Tools\Client\Always Encrypted] 金鑰下建立 CAPI Provider Enabled DWORD 值,並將其設成 1。 除非您的金鑰存放區不支援 CNG,否則您應該使用 CNG,而非 CAPI。
如需上述金鑰存放區的詳細資訊,請參閱建立及儲存 Always Encrypted 的資料行主要金鑰。
如果您使用 SQL Server 2019 (15.x),且 SQL Server 執行個體已設定安全記憶體保護區,您可以選取 [允許記憶體保護區計算] 核取方塊,將主要金鑰設為已啟用記憶體保護區。 如需詳細資料,請參閱具有安全記憶體保護區的 Always Encrypted。
注意
如果 SQL Server 執行個體未正確設定安全記憶體保護區,則不會出現 [允許記憶體保護區計算] 核取方塊。
挑選金鑰存放區中的現有金鑰,或按一下 [產生金鑰] 或 [產生憑證] 按鈕,以在金鑰存放區中建立金鑰。
按一下 [確定],新的金鑰即會顯示在清單中。
完成對話方塊之後,SQL Server Management Studio 會在資料庫中建立資料行主要金鑰的中繼資料。 此對話方塊會產生並發出 CREATE COLUMN MASTER KEY (Transact-SQL) 陳述式。
如果您設定已啟用安全區域的資料行主要金鑰,SSMS 也會使用資料行主要金鑰來簽署中繼資料。
配置欄主鍵的權限
您需要擁有資料庫的ALTER ANY COLUMN MASTER KEY權限,才能使用對話框建立資料行主要金鑰。 您也需要金鑰存放區權限,才能存取和使用您的金鑰資料行主要金鑰。 如需金鑰管理作業所需金鑰存放區權限的相關詳細資訊,請參閱建立及儲存 Always Encrypted 的資料行主要金鑰,並檢閱與您的金鑰存放區相關的部分。
使用 [新增資料行加密金鑰] 對話方塊來配置資料行加密金鑰
[新增資料行加密金鑰] 對話方塊可讓您產生資料行加密金鑰、使用資料行主要金鑰進行加密,以及在資料庫中建立資料行加密金鑰中繼資料。
- 使用物件總管 ,巡覽至資料庫下的 [安全性]/[永遠加密金鑰] 資料夾。
- 以滑鼠右鍵按一下 [資料行加密金鑰] 資料夾,然後選取 [新增資料行加密金鑰]。
- 在 [新增資料行加密金鑰] 對話方塊中,輸入資料行加密金鑰中繼資料物件的名稱。
- 選取代表資料庫中資料行主要金鑰的中繼資料物件。
- 按一下 [確定]。
完成對話方塊之後,SQL Server Management Studio (SSMS) 會產生新的資料行加密金鑰。 SSMS 接著會從資料庫擷取您選取的資料行主金鑰的中繼資料。 SSMS 接著會使用資料行主要金鑰中繼資料來連絡包含資料行主要金鑰的金鑰存放區,並加密資料行加密金鑰。 最後,SSMS 會產生並發出 CREATE COLUMN ENCRYPTION KEY (Transact-SQL) 陳述式,在資料庫中建立新資料行加密的中繼資料。
注意
使用儲存在 Azure Key Vault 中的 受控 HSM 的資料行主要金鑰需要 SSMS 18.9 或更新版本。
佈建資料行加密金鑰的權限
您需要資料庫的 ALTER ANY COLUMN ENCRYPTION KEY 和 VIEW ANY COLUMN MASTER KEY DEFINITION 權限,才能讓對話方塊建立資料行加密金鑰中繼資料和存取資料行主要金鑰中繼資料。 您也需要金鑰存放區權限,才能存取和使用您的欄主金鑰。 如需金鑰管理作業所需金鑰存放區權限的詳細資訊,請移至建立及儲存 Always Encrypted 的資料行主要金鑰,並尋找與您的金鑰存放區相關的區段。
使用 [Always Encrypted 精靈] 配置 Always Encrypted 金鑰
Always Encrypted 精靈是用來加密、解密和重新加密所選資料庫資料行的工具。 該工具除了可以使用已設定的金鑰,也可讓您產生新資料行主要金鑰和新資料行加密。
後續步驟
- 使用 [Always Encrypted 精靈] 設定資料行加密
- 使用 Always Encrypted 與 DAC 套件設定資料行加密
- 使用 SQL Server Management Studio 旋轉 Always Encrypted 的金鑰
- 使用 Always Encrypted 開發應用程式
- 利用 Always Encrypted 和 SQL Server 匯入匯出精靈,將資料遷入或遷出欄
另請參閱
- 一律加密
- Always Encrypted 的金鑰管理概觀
- 建立及儲存 Always Encrypted 的資料行主金鑰
- 使用 SQL Server Management Studio 設定 Always Encrypted
- 使用 PowerShell 佈建 Always Encrypted 金鑰
- CREATE COLUMN MASTER KEY (Transact-SQL)
- DROP COLUMN MASTER KEY (Transact-SQL)
- 建立欄位加密金鑰 (Transact-SQL)
- ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
- DROP COLUMN ENCRYPTION KEY (Transact-SQL)
- sys.column_master_keys (Transact-SQL)
- sys.column_encryption_keys (Transact-SQL)