使用 SQL Server Management Studio 佈建 Always Encrypted 金鑰

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例

本文提供使用 SQL Server Management Studio (SSMS) 佈建 Always Encrypted 資料行主要金鑰和資料行加密金鑰的步驟。 在配置加密金鑰時,請使用最新版本的 SQL Server Management Studio 。

如需 Always Encrypted 金鑰管理的概觀,包括最佳做法建議和重要的安全性考慮,請參閱 Always Encrypted 的金鑰管理概觀。

在 [新增資料行主要金鑰] 對話方塊中供應資料行主要金鑰

[新增資料行主要金鑰] 對話方塊可讓您產生資料行主要金鑰或挑選金鑰存放區中的現有金鑰,以及建立資料庫中所建立或所選取金鑰的資料行主要金鑰中繼資料。

  1. 使用 物件瀏覽器,瀏覽至資料庫底下的 安全性 -> Always Encrypted 金鑰 節點。

  2. 以滑鼠右鍵按一下 [資料行主要金鑰] 節點,然後選取 [新增資料行主要金鑰...]。

  3. 在 [新增資料行主要金鑰] 對話方塊中,輸入資料行主要金鑰中繼資料物件的名稱。

  4. 選取金鑰存放區︰

    • 證書存儲 - 目前使用者 - 指出 Windows 證書存儲中的目前使用者證書儲存位置,這是您的個人存放區。

    • 證書存儲 - 本機計算機 - 指出 Windows 證書儲存中的本機電腦證書儲存位置。

    • Azure Key Vault - 您必須登入 Azure (按兩下 [ 登入]。 登入之後,就可以選取其中一個 Azure 訂用帳戶和金鑰保存庫或受控 HSM (需要 SSMS 18.9 或更新版本)。

      注意

      使用儲存在 Azure Key Vault 中受管理的 HSM 內的欄主密鑰,需要 SSMS 18.9 或更新版本。

    • 金鑰存放區提供者 (KSP) - 指出可透過實作新一代密碼編譯 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 提供者啟用" 的 DWORD 值,並將其設定為 1,來啟用該功能。 除非您的金鑰存放區不支援 CNG,否則您應該使用 CNG,而非 CAPI。

    如需上述密鑰存放區的詳細資訊,請參閱 建立及儲存 Always Encrypted 的數據行主要密鑰。

  5. 如果您使用 SQL Server 2019 (15.x),且 SQL Server 執行個體已設定安全記憶體保護區,您可以選取 [允許記憶體保護區計算] 核取方塊,將主要金鑰設為已啟用記憶體保護區。 如需詳細資訊,請參閱 具備安全區域的 Always Encrypted。

    注意

    如果 SQL Server 執行個體未正確設定安全記憶體保護區,則不會出現 [允許記憶體保護區計算] 核取方塊。

  6. 挑選金鑰存放區中的現有金鑰,或按一下 [產生金鑰] 或 [產生憑證] 按鈕,以在金鑰存放區中建立金鑰。

    注意

    我們不會驗證用來產生數據行主要密鑰的金鑰或憑證的有效性。

  7. 按一下 [確定],新的金鑰即會顯示在清單中。

完成對話方塊之後,SQL Server Management Studio 會在資料庫中建立資料行主要金鑰的中繼資料。 對話會產生並發出一個CREATE COLUMN MASTER KEY(Transact-SQL)陳述。

如果您設定已啟用安全區域的資料行主要金鑰,SSMS 也會使用資料行主要金鑰來簽署中繼資料。

配置欄主鍵的權限

你需要在資料庫中取得 ALTER ANY COLUMN MASTER KEY 資料庫權限,才能在對話框中建立欄位主鍵。 您也需要金鑰存放區權限,才能存取和使用您的金鑰資料行主要金鑰。 如需金鑰管理作業所需金鑰存放區許可權的詳細資訊,請參閱 建立及儲存 Always Encrypted 的數據行主要密鑰 ,並檢閱與密鑰存放區相關的區段。

使用 [新增資料行加密金鑰] 對話方塊來配置資料行加密金鑰

[新增資料行加密金鑰] 對話方塊可讓您產生資料行加密金鑰、使用資料行主要金鑰進行加密,以及在資料庫中建立資料行加密金鑰中繼資料。

  1. 使用物件總管 ,巡覽至資料庫下的 [安全性]/[永遠加密金鑰] 資料夾。
  2. 以滑鼠右鍵按一下 [資料行加密金鑰] 資料夾,然後選取 [新增資料行加密金鑰]。
  3. 在 [新增資料行加密金鑰] 對話方塊中,輸入資料行加密金鑰中繼資料物件的名稱。
  4. 選取代表資料庫中資料行主要金鑰的中繼資料物件。
  5. 按一下 [確定]。

完成對話方塊之後,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 精靈是加密、解密和重新加密選取的資料庫數據行的工具。 該工具除了可以使用已設定的金鑰,也可讓您產生新資料行主要金鑰和新資料行加密。

後續步驟

另請參閱