共用方式為


使用 Azure Key Vault 進行可延伸金鑰管理的受控識別支援

適用於: SQL Server 2025 (17.x)

本文說明如何在 Azure Arc 啟用的 SQL Server 上使用受管識別來進行可延伸密鑰管理(EKM)和 Azure Key Vault(AKV)。

概觀

自 SQL Server 2025(17.x)起,支援 EKM 與 AKV 及由 Azure Arc 啟用的 SQL Server 上的受管硬體安全模組(HSM)管理身份。受管理身份是推薦的認證方法,讓不同 Azure 服務能在不使用密碼或秘密的情況下,驗證由 Azure Arc 資源啟用的 SQL Server。 如需受控識別的詳細資訊,請參閱受控識別類型。

先決條件

步驟 1:新增 EKM 提供者的登錄機碼

在您使用受控識別建立認證之前,需新增登錄機碼以啟用EKM 提供者使用受控識別。 此步驟必須由計算機管理員執行。 如需詳細步驟,請參閱 步驟 4:新增登錄機碼以支援 EKM 提供者

步驟 2:設定 master 資料庫

  1. 開啟 SQL Server Management Studio。

  2. 執行下列 Transact-SQL 指令碼,將 SQL Server 設定為使用 EKM:

    -- Enable advanced options.
    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    -- Enable EKM provider
    EXECUTE sp_configure 'EKM provider enabled', 1;
    GO
    
    RECONFIGURE;
    GO
    
  3. 將 SQL Server 連接器註冊為 SQL Server 的 EKM 提供者。

    使用 SQL Server 連接器來建立密碼編譯提供者,它是 Azure Key Vault 的 EKM 提供者。 在此範例中,提供者名稱為 AzureKeyVault_EKM

    CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM
    FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
    GO
    

    備註

    檔案路徑長度不能超過 256 個字元。

步驟 3:使用受控識別建立伺服器認證

下列範例示範如何為受控識別建立認證,以搭配 Azure Key Vault 使用:

CREATE CREDENTIAL [<akv-name>.vault.azure.net]
    WITH IDENTITY = 'Managed Identity'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;

您可以查詢 sys.credentials來檢查 AKV 名稱:

SELECT name, credential_identity
FROM sys.credentials;

WITH IDENTITY = 'Managed Identity'條款需要分配給由 Azure Arc 啟用的 SQL Server 的主受管理識別。

如需使用 AKV 設定 EKM 的詳細資訊,請參閱 使用 Azure Key Vault設定 SQL Server TDE 可延伸密鑰管理。

建立認證以搭配受管理的硬體安全模組使用 (HSM)

若要建立與 Azure Key Vault 受控硬體安全性模組 (HSM) 搭配使用的認證,請使用下列語法:

CREATE CREDENTIAL [<akv-name>.managedhsm.azure.net]
    WITH IDENTITY = 'Managed Identity'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;

如需使用 AKV 設定 EKM 的詳細資訊,請參閱 使用 Azure Key Vault設定 SQL Server TDE 可延伸密鑰管理。

用來升級現有 EKM 組態以使用受控識別的 T-SQL 命令

如果您目前的設定是使用 EKM 搭配 AKV 使用秘密,您必須卸除現有的認證,並使用受控識別建立新的認證。 下列 T-SQL 命令示範如何升級現有的 EKM 組態以使用受控識別:

  1. 使用受控識別建立認證:

    CREATE CREDENTIAL [<akv-name>.vault.azure.net]
        WITH IDENTITY = 'Managed Identity'
        FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
    
  2. 如果有認證使用與 SQL Server 管理員網域登入相關聯的密碼,請刪除現有的認證:

    ALTER LOGIN [<domain>\<login>]
    DROP CREDENTIAL [<existing-credential-name>];
    
  3. 將新的認證與 SQL Server 系統管理網域登入產生關聯:

    ALTER LOGIN [<domain>\<login>]
    ADD CREDENTIAL [<akv-name>.vault.azure.net];
    

您可以使用下列查詢來檢查加密的資料庫檢視,以確認資料庫加密:

SELECT *
FROM sys.dm_database_encryption_keys
WHERE database_id = db_id('<your-database-name>');

如需使用 AKV 設定 EKM 的詳細資訊,請參閱 使用 Azure Key Vault設定 SQL Server TDE 可延伸密鑰管理。

錯誤訊息

追蹤旗標 4675 可用於檢查使用受控識別碼建立的憑證。 如果在未啟用追蹤旗標 4675 的情況下執行 CREATE CREDENTIAL 語句,如果未為伺服器設定主要受控識別,則不會發出任何錯誤訊息。 若要排除此情境的問題,一旦啟用追蹤旗標,就必須刪除並重新建立憑證。

局限性

  • 只有在啟用 Azure Arc 的 SQL Server 2025 上,才支援伺服器層級的受控識別,此功能不適用於內部部署的 SQL Server。 Linux 不支援伺服器層級受控識別。
  • 使用 AKV 的 EKM 受控識別支援需要最新的 SQL Server 連接器預覽版本