Poprawa: obsługa tożsamości zarządzanej firmy Microsoft dla operacji tworzenia kopii zapasowych i przywracania bazy danych oraz EKM za pomocą usługi AKV w programie SQL Server na maszynach wirtualnych platformy Azure
Symptomy
Wystąpienie programu SQL Server może przestać odpowiadać, jeśli uruchamiasz operację tworzenia kopii zapasowej lub przywracania bazy danych w usłudze Azure Storage lub używasz rozszerzonego zarządzania kluczami (EKM) z usługą Azure Key Vault (AKV) przy użyciu poświadczeń na poziomie serwera z tożsamościami zarządzanymi. Mimo że ta operacja nie jest obsługiwana w przypadku programu SQL Server 2022, bieżąca składnia języka T-SQL pozwala na to.
Rozwiązanie
Ten problem został rozwiązany w następującej zbiorczej aktualizacji programu SQL Server na maszynach wirtualnych platformy Azure:
Aktualizacja zbiorcza 17 dla programu SQL Server 2022
W programie SQL Server 2022 CU17 i nowszych wersjach uwierzytelnianie tożsamości zarządzanej firmy Microsoft za pomocą programu SQL Server na maszynach wirtualnych platformy Azure z systemem Windows obsługuje poświadczenia na poziomie serwera dla operacji tworzenia kopii zapasowych i przywracania bazy danych w usłudze Azure Storage oraz EKM z usługą AKV.
Aby włączyć obsługę tożsamości zarządzanej dla operacji tworzenia kopii zapasowej lub przywracania bazy danych dla programu SQL Server na maszynach wirtualnych z systemem Windows platformy Azure, wymagane są następujące kroki:
- Przypisz podstawową tożsamość zarządzaną dla programu SQL Server na maszynach wirtualnych z systemem Windows platformy Azure.
- Tworzenie lub używanie usługi Azure Storage z kontenerem obiektów blob.
- Przypisz role kontroli dostępu opartej na rolach (RBAC) dla podstawowej tożsamości zarządzanej w celu uzyskania dostępu do usługi Azure Storage.
- Uruchom polecenie
CREATE CREDENTIAL
T-SQL z klauzuląWITH IDENTITY = 'Managed Identity'
przy użyciu adresu URL usługi Azure Storage jako nazwy poświadczeń. - Uruchom polecenie
BACKUP DATABASE
T-SQL lubRESTORE DATABASE
użyj adresu URL usługi Azure Storage.
-- 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'
Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej i przywracanie do adresu URL przy użyciu tożsamości zarządzanych.
Aby włączyć obsługę tożsamości zarządzanej dla EKM z usługą AKV dla programu SQL Server na maszynach wirtualnych z systemem Windows platformy Azure, wymagane są następujące kroki:
- Przypisz podstawową tożsamość zarządzaną dla programu SQL Server na maszynach wirtualnych z systemem Windows platformy Azure.
- Tworzenie lub używanie magazynu kluczy.
- Przypisz role kontroli dostępu opartej na rolach (RBAC) dla podstawowej tożsamości zarządzanej, aby uzyskać dostęp do usługi AKV.
- Pobierz najnowszy łącznik programu SQL Server dla usługi Microsoft Azure Key Vault (wersja 1.0.5.0 (listopad 2024) lub nowsze wersje). Do obsługi tożsamości zarządzanej jest wymagana najnowsza wersja łącznika programu SQL Server.
- Uruchom polecenie
CREATE CREDENTIAL
T-SQL z klauzuląWITH IDENTITY = 'Managed Identity'
, używając ścieżki AKV jako nazwy poświadczeń.
-- 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
- Uruchom pozostałą część konfiguracji języka T-SQL EKM za pomocą usługi AKV.
Aby uzyskać więcej informacji, zobacz Managed Identity Support for Extensible Key Management with Azure Key Vault (Obsługa tożsamości zarządzanej na potrzeby rozszerzonego zarządzania kluczami za pomocą usługi Azure Key Vault).
Uwaga 16.
- Flaga śledzenia 4675, wyłączona domyślnie, umożliwia rozwiązywanie problemów z poświadczeniami na poziomie serwera i może służyć do potwierdzenia podstawowej tożsamości zarządzanej przypisanej do wystąpienia programu SQL Server.
- Obsługa tożsamości zarządzanej nie wprowadza żadnych zmian składni języka T-SQL ani widoku systemu, ponieważ ta funkcja już istnieje dla usługi Azure SQL Managed Instance.
- Tożsamości zarządzane nie są obsługiwane w przypadku poświadczeń na poziomie serwera w środowisku lokalnym programu SQL Server. Jeśli przypadkowo użyto kopii zapasowej lub przywracania do usługi Azure Storage lub EKM z usługą AKV, zostanie wyświetlony komunikat o błędzie "Podstawowa tożsamość zarządzana nie jest ustawiona dla serwera..." i są odwoływanych do publicznej dokumentacji.
Informacje o aktualizacjach zbiorczych dla programu SQL Server
Każda nowa zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które znajdowały się w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla używanej wersji programu SQL Server:
Najnowsza aktualizacja zbiorcza programu SQL Server 2022
Stan
Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych w części "Ma zastosowanie do:".
Informacje
- Konfigurowanie tożsamości zarządzanych na maszynach wirtualnych platformy Azure
- Włączanie uwierzytelniania entra firmy Microsoft dla programu SQL Server na maszynach wirtualnych platformy Azure
- CREATE CREDENTIAL (Transact-SQL)
- Tworzenie kopii zapasowej i przywracanie do adresu URL przy użyciu tożsamości zarządzanych
- Obsługa tożsamości zarządzanej na potrzeby rozszerzonego zarządzania kluczami za pomocą usługi Azure Key Vault
- DBCC TRACEON — flagi śledzenia (Transact-SQL)