適用於: 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。 如需受控識別的詳細資訊,請參閱
先決條件
- 將 SQL Server 的實例連線到 Azure Arc。如需詳細資訊,請參閱 自動將您的 SQL Server 連線到 Azure Arc。
- 啟用 SQL Server 2025 的管理身份。
- 在金鑰保存庫中建立的 Azure Key Vault 和密鑰。 如需詳細資訊,請參閱 建立金鑰儲存庫。
- 如果您使用
Key Vault Crypto Service Encryption User,則 Azure Arc 所啟用 SQL Server 的受控識別必須將角色指派至金鑰保存庫。如果您使用的是保存庫存取原則,則需要擁有解包裝金鑰和包裝金鑰的許可權。 - 下載並安裝 SQL Server 連接器的預覽版本。
步驟 1:新增 EKM 提供者的登錄機碼
在您使用受控識別建立認證之前,需新增登錄機碼以啟用EKM 提供者使用受控識別。 此步驟必須由計算機管理員執行。 如需詳細步驟,請參閱 步驟 4:新增登錄機碼以支援 EKM 提供者。
步驟 2:設定 master 資料庫
開啟 SQL Server Management Studio。
執行下列 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將 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 組態以使用受控識別:
使用受控識別建立認證:
CREATE CREDENTIAL [<akv-name>.vault.azure.net] WITH IDENTITY = 'Managed Identity' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;如果有認證使用與 SQL Server 管理員網域登入相關聯的密碼,請刪除現有的認證:
ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL [<existing-credential-name>];將新的認證與 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 連接器預覽版本。