Freigeben über


Sichern und Wiederherstellen von URLs mithilfe verwalteter Identitäten

Gilt für:SQL Server auf Azure VM (nur Windows)

In diesem Artikel erfahren Sie, wie Sie Datenbanken von SQL Server auf Azure Virtual Machines (VM) aus einer URL mithilfe verwalteter Microsoft Entra-Identitäten sichern und wiederherstellen können.

Überblick

Ab dem kumulativen Update 17 (CU17) von SQL Server 2022 können Sie verwaltete Identitäten mit SQL Server-Anmeldeinformationen verwenden, um Datenbanken von SQL Server auf Azure VM aus Azure Blob Storage zu sichern und wiederherzustellen. Verwaltete Identitäten bieten eine Identität für Anwendungen, die verwendet wird, um eine Verbindung mit Ressourcen herzustellen, die die Microsoft Entra-Authentifizierung unterstützen.

Die Verwendung verwalteter Identitäten in den Anmeldeinformationen für die BACKUP TO URL- und RESTORE FROM URL T-SQL-Vorgänge wird nur von SQL Server auf Azure-VMs unterstützt. Die Verwendung verwalteter Identitäten mit einer lokalen SQL Server-Instanz auf BACKUP TO URL und RESTORE FROM URL wird nicht unterstützt.

Voraussetzungen

  • Eine SQL Server auf Azure VM-Instanz mit SQL Server 2022 CU17 oder höher mit einer Konfiguration mit Microsoft Entra-Authentifizierung
  • Ein Azure Blob Storage-Konto
  • Gültiger Netzwerkzugriff auf die Berechtigungen für Azure Blob Storage und die Windows-Firewall auf dem Host, um die ausgehende Verbindung und die gültigen Dienstendpunkte des Speicherkontos zuzulassen.
  • Die primäre verwaltete Identität für die SQL Server auf Azure VM-Instanz muss über Folgendes verfügen:

Erstellen von Serveranmeldeinformationen mithilfe verwalteter Identitäten

Um die T-SQL-Befehle BACKUP DATABASE <database name> TO URL und RESTORE <database name> FROM URL mit verwalteten Identitäten zu verwenden, müssen Sie Serveranmeldeinformationen erstellen, die die verwaltete Identität verwenden. Der Name der Anmeldeinformationen stellt die Azure Storage-URL dar und gibt an, wo die Datenbanksicherung gespeichert wird.

Im folgenden Beispiel wird veranschaulicht, wie Sie Anmeldeinformationen für eine verwaltete Identität erstellen:

CREATE CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>] 
    WITH IDENTITY = 'Managed Identity'

Die WITH IDENTITY = 'Managed Identity'-Klausel erfordert eine primäre verwaltete Identität, die dem SQL Server auf einer Azure-VM zugewiesen ist.

Weitere Informationen zu Fehlermeldungen, die auftreten können, wenn die primäre verwaltete Identität nicht zugewiesen ist oder nicht die erforderlichen Berechtigungen hat, finden Sie im Abschnitt Fehlermeldungen.

BACKUP über URLs mit einer verwalteten Identität

Nachdem Sie die Anmeldeinformationen erstellt haben, können Sie sie zum Sichern und Wiederherstellen von Datenbanken in Azure Blob Storage verwenden. Stellen Sie sicher, dass der primären verwalteten Identität für die SQL Server auf Azure VM-Instanz die Storage Blob Data Contributor-Rolle für das Speicherkonto zugewiesen ist.

Im folgenden Beispiel wird veranschaulicht, wie Sie eine Datenbank mithilfe der Anmeldeinformationen einer verwalteten Identität in Azure Blob Storage sichern:

BACKUP DATABASE [AdventureWorks] 
    TO URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak' 

RESTORE über URLs mit einer verwalteten Identität

Das folgende Beispiel zeigt, wie Sie eine Datenbank aus Azure Blob Storage mithilfe der verwalteten Identitätsanmeldeinformationen wiederherstellen:

RESTORE DATABASE [AdventureWorks] 
    FROM URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak' 

Fehlermeldungen

Das Ablaufverfolgungsflag 4675 kann verwendet werden, um Anmeldeinformationen zu überprüfen, die mit einer verwalteten Identität erstellt wurden. Wenn die CREATE CREDENTIAL-Anweisung ohne Ablaufverfolgungsflag 4675 ausgeführt wurde, wird keine Fehlermeldung ausgegeben, sofern die primäre verwaltete Identität für den Server nicht festgelegt ist. Um dieses Szenario zu beheben, müssen die Anmeldeinformationen gelöscht und erneut erstellt werden, sobald das Ablaufverfolgungsflag aktiviert ist.

Es wurde keine primäre verwaltete Identität zugewiesen

Wenn dem SQL Server auf der Azure-VM keine primäre verwaltete Identität zugewiesen ist, schlagen die Sicherungs- und Wiederherstellungsvorgänge fehl mit einer Fehlermeldung, die angibt, dass die verwaltete Identität nicht ausgewählt wurde.

Msg 37563, Level 16, State 2, Line 14
The primary managed identity is not selected for this server. Enable the primary managed identity for Microsoft Entra authentication for this server. For more information see (https://aka.ms/sql-server-managed-identity-doc).`

Keine Storage Blob Data Contributor-Rolle zugewiesen

Wenn der primären verwalteten Identität für die SQL Server auf Azure VM-Instanz nicht die Storage Blob Data Contributor-Rolle für das Speicherkonto zugewiesen wird, tritt bei dem BACKUP-Vorgang ein Fehler auf, und eine Fehlermeldung gibt an, dass der Zugriff verweigert wurde.

Msg 3201, Level 16, State 1, Line 31
Cannot open backup device 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 31
BACKUP DATABASE is terminating abnormally. 

Wenn der verwalteten Identität für die SQL Server auf Azure VM-Instanz nicht die Storage Blob Data Contributor-Rolle für das Speicherkonto zugewiesen wird, tritt bei dem RESTORE-Vorgang ein Fehler auf, und eine Fehlermeldung gibt an, dass der Zugriff verweigert wurde.

Msg 3201, Level 16, State 1, Line 31
Cannot open backup device 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 31
RESTORE DATABASE is terminating abnormally. 

Doppelter Datenbankname

Wenn die ursprüngliche Datenbank mit demselben Namen im Speicher vorhanden ist, schlägt die Sicherung einer neuen Datenbank mit demselben Speicherpfad mit dem folgenden Fehler fehl:

Msg 1834, Level 16, State 1, Line 35
RESTORE DATABASE AdventureWorks 
from URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak' 
Msg 1834, Level 16, State 1, Line 35 
The file 'C:\Server\sqlservr\data\AdventureWorks.mdf' cannot be overwritten.  It is being used by the database 'AdventureWorks'. 
Msg 3156, Level 16, State 4, Line 35 
File 'AdventureWorks' cannot be restored to 'C:\Server\sqlservr\data\AdventureWorks.mdf'. Use WITH MOVE to identify a valid location for the file.

Um dieses Problem zu beheben, legen Sie die ursprüngliche Datenbank ab, oder verschieben Sie die verwendeten Dateien an einen anderen Speicherort, bevor Sie die Datenbank wiederherstellen. Weitere Informationen finden Sie unter Wiederherstellen einer Datenbank an einem neuen Speicherort (SQL Server).

Begrenzungen

  • Verwaltete Identität auf Serverebene wird nur für SQL Server auf azure-VM und nicht für lokale SQL Server unterstützt. Verwaltete Identität auf Serverebene wird für Linux nicht unterstützt.

  • BACKUP TO URL oder RESTORE FROM URL mit einer verwalteten Identität werden nur für SQL Server auf Azure VM unterstützt. BACKUP TO URL oder RESTORE FROM URL wird von SQL Server nicht lokal unterstützt.

  • Verwaltete Identitäten werden mit der Failoverclusterinstanz (FCI) nicht unterstützt.

  • BACKUP TO URL kann nur mit derselben verwalteten Identität ausgeführt werden, die für sql Server auf azure VM verwendet wird, unabhängig davon, ob der Server über eine oder viele Instanzen von SQL Server auf dem virtuellen Computer verfügt.