改進:Microsoft Entra 受控識別支援備份和還原資料庫作業,以及 Azure VM 上的 SQL Server 中的 EKM 搭配 AKV

症狀

如果您對 Azure 儲存體 執行備份或還原資料庫作業,或使用可延伸金鑰管理 (EKM) 搭配 Azure 金鑰保存庫 (AKV,) 使用伺服器層級認證與受控識別,則 SQL Server 執行個體可能會停止回應。 雖然 SQL Server 2022 不支援此作業,但目前的 T-SQL 語法允許它。

解決方式

此問題已在以下適用於 Azure 虛擬機器 (VM) 上SQL Server的累積更新中修正:

SQL Server 2022 的累積更新 17

在 SQL Server 2022 CU17 和更新版本中,僅限 Azure Windows 虛擬機器上使用 SQL Server 進行 Microsoft Entra 受控識別驗證,支援用於 Azure 儲存體資料庫備份和還原作業,以及針對具有 AKV 的 EKM。

若要針對 Azure Windows VM 上的 SQL Server 啟用備份或還原資料庫作業的受控識別支援,需要執行下列步驟:

  1. 在 Azure Windows VM 上指派 SQL Server 的主要受控識別。
  2. 建立或使用 Azure 儲存體搭配 Blob 容器。
  3. 指派角色型存取控制 (RBAC) 角色,讓主要受控識別能夠存取 Azure 儲存體。
  4. 執行 T-SQL 命令CREATE CREDENTIAL,WITH IDENTITY = 'Managed Identity'其中包含使用 Azure 儲存體 URL 做為認證名稱的子句。
  5. 執行 T-SQL 命令BACKUP DATABASE或RESTORE DATABASE使用 Azure 儲存體 URL。
-- Create credential with managed identity and credential name set to
-- URL= https://<storageaccountname>.blob.core.windows.net/<container>   
CREATE CREDENTIAL [https://<storageaccountname>.blob.core.windows.net/<container>]  
 WITH IDENTITY = 'Managed Identity'  
-- Backup the database mydb to URL 
BACKUP DATABASE mydb 
 TO URL = 'https://<storageaccount>.blob.core.windows.net/<container>/mydb.bak'  
-- Restore the database mydb1 from URL
RESTORE DATABASE mydb1  
 FROM URL ='https://<storageaccount>.blob.core.windows.net/<container>/mydb.bak'  

如需詳細資訊,請參閱 使用受控識別備份和還原至 URL。

若要在 Azure Windows VM 上透過適用於 SQL Server 的 AKV 啟用 EKM 的受控識別支援,需要執行下列步驟:

  1. 在 Azure Windows VM 上指派 SQL Server 的主要受控識別。
  2. 建立或使用金鑰保存庫。
  3. 指派角色型存取控制 (RBAC) 角色,讓主要受控識別存取 AKV。
  4. 下載 1.0.5.0 (2024 年 11 月) 版或更新版本) 的最新適用於 Microsoft Azure Key Vault 的 SQL Server 連接器 (。 需要最新版的 SQL Server 連接器,才能支援受控識別。
  5. 執行 T-SQL 命令 CREATE CREDENTIAL , WITH IDENTITY = 'Managed Identity' 其中包含使用 AKV 路徑做為認證名稱的子句。
-- Create credential with managed identity and the credential name for the AKV called 'contoso'
-- with the AKV path = 'contoso.vault.azure.net'  
CREATE CREDENTIAL [contoso.vault.azure.net]  
 WITH IDENTITY = 'Managed Identity'  
 FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov 
  1. 使用 AKV 執行 EKM 的其餘 T-SQL 設定。

如需詳細資訊,請參閱 使用 Azure 金鑰保存庫 對可延伸金鑰管理的受控識別支援。

注意

  • 追蹤旗標 4675 預設為停用,可對伺服器層級認證進行疑難排解,並可用來確認指派給 SQL Server 執行個體的主要受控識別。
  • 受控識別支援不會引進任何 T-SQL 語法或系統檢視變更,因為此功能已存在於 Azure SQL 受控執行個體中。
  • 內部部署 SQL Server 的伺服器層級認證不支援受控識別。 當意外搭配備份或還原至 Azure 儲存體或搭配 AKV 的 EKM 一起使用時,您會看到錯誤訊息「未為伺服器設定主要受控識別...」並參閱公開文件。

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含前一個組建中的所有 Hotfix 和安全性修正程式。 建議您安裝適用於您 SQL Server 版本的最新組建:

SQL Server 2022 的最新累積更新

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料