症狀
如果您對 Azure 儲存體 執行備份或還原資料庫作業,或使用可延伸金鑰管理 (EKM) 搭配 Azure 金鑰保存庫 (AKV,) 使用伺服器層級認證與受控識別,則 SQL Server 執行個體可能會停止回應。 雖然 SQL Server 2022 不支援此作業,但目前的 T-SQL 語法允許它。
解決方式
此問題已在以下適用於 Azure 虛擬機器 (VM) 上SQL Server的累積更新中修正:
在 SQL Server 2022 CU17 和更新版本中,僅限 Azure Windows 虛擬機器上使用 SQL Server 進行 Microsoft Entra 受控識別驗證,支援用於 Azure 儲存體資料庫備份和還原作業,以及針對具有 AKV 的 EKM。
若要針對 Azure Windows VM 上的 SQL Server 啟用備份或還原資料庫作業的受控識別支援,需要執行下列步驟:
- 在 Azure Windows VM 上指派 SQL Server 的主要受控識別。
- 建立或使用 Azure 儲存體搭配 Blob 容器。
- 指派角色型存取控制 (RBAC) 角色,讓主要受控識別能夠存取 Azure 儲存體。
- 執行 T-SQL 命令
CREATE CREDENTIAL,WITH IDENTITY = 'Managed Identity'其中包含使用 Azure 儲存體 URL 做為認證名稱的子句。 - 執行 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 的受控識別支援,需要執行下列步驟:
- 在 Azure Windows VM 上指派 SQL Server 的主要受控識別。
- 建立或使用金鑰保存庫。
- 指派角色型存取控制 (RBAC) 角色,讓主要受控識別存取 AKV。
- 下載 1.0.5.0 (2024 年 11 月) 版或更新版本) 的最新適用於 Microsoft Azure Key Vault 的 SQL Server 連接器 (。 需要最新版的 SQL Server 連接器,才能支援受控識別。
- 執行 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
- 使用 AKV 執行 EKM 的其餘 T-SQL 設定。
如需詳細資訊,請參閱 使用 Azure 金鑰保存庫 對可延伸金鑰管理的受控識別支援。
注意
- 追蹤旗標 4675 預設為停用,可對伺服器層級認證進行疑難排解,並可用來確認指派給 SQL Server 執行個體的主要受控識別。
- 受控識別支援不會引進任何 T-SQL 語法或系統檢視變更,因為此功能已存在於 Azure SQL 受控執行個體中。
- 內部部署 SQL Server 的伺服器層級認證不支援受控識別。 當意外搭配備份或還原至 Azure 儲存體或搭配 AKV 的 EKM 一起使用時,您會看到錯誤訊息「未為伺服器設定主要受控識別...」並參閱公開文件。
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含前一個組建中的所有 Hotfix 和安全性修正程式。 建議您安裝適用於您 SQL Server 版本的最新組建:
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。