共用方式為


改善:Microsoft Azure VM 上 SQL Server 中具有 AKV 的備份和還原資料庫作業和 EKM 的 Entra 受控識別支援

徵兆

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

解決方法

此問題已修正在 Azure 虛擬機上 SQL Server 的下列累積更新中:VM:

SQL Server 2022 的累積更新 17

在 SQL Server 2022 CU17 和更新版本中,Microsoft只有 Azure Windows 上 SQL Server 的 SQL Server 受控識別驗證支援資料庫備份和還原作業的伺服器層級認證,以使用 AKV Azure 儲存體 和 EKM。

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

  1. 為 Azure Windows VM 上的 SQL Server 指派主要受控識別。
  2. 建立或使用 Azure 儲存體 搭配 Blob 容器。
  3. 為主要受控識別指派角色型訪問控制 (RBAC) 角色,以存取 Azure 儲存體。
  4. 使用 Azure 儲存體 URL 做為認證名稱,WITH IDENTITY = 'Managed Identity'以 子句執行 T-SQL 命令CREATE CREDENTIAL
  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 上使用 AKV for SQL Server 啟用 EKM 的受控識別支援,必須執行下列步驟:

  1. 為 Azure Windows VM 上的 SQL Server 指派主要受控識別。
  2. 建立或使用金鑰保存庫。
  3. 為主要受控識別指派角色型訪問控制 (RBAC) 角色,以存取 AKV。
  4. 下載最新的 適用於 Microsoft Azure Key Vault 的 SQL Server 連接器 (1.0.5.0 (2024 年 11 月) 或更新版本)。 需要最新版本的 SQL Server 連接器才能支援受控識別。
  5. 使用 AKV 路徑作為認證名稱,以 WITH IDENTITY = 'Managed Identity' 子句執行 T-SQL 命令CREATE CREDENTIAL
-- 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 產品確實有上述問題。

參考資料