Dela via


Säkerhetskopiera och återställa till URL med hanterade identiteter

gäller för:SQL Server på en virtuell Azure-dator (endast Windows)

I den här artikeln lär du dig att säkerhetskopiera till och återställa SQL Server på Azure Virtual Machines-databaser (VM) från en URL med hjälp av Microsoft Entra-hanterade identiteter.

Översikt

Från och med SQL Server 2022 Kumulativ uppdatering 17 (CU17) kan du använda hanterade identiteter med SQL Server-autentiseringsuppgifter för att säkerhetskopiera till och återställa SQL Server på Azure VM-databaser från Azure Blob Storage. Hanterade identiteter tillhandahåller en identitet som program kan använda när de ansluter till resurser som stöder Microsoft Entra-autentisering.

Användning av hanterade identiteter i autentiseringsuppgifterna BACKUP TO URL för och RESTORE FROM URL T-SQL-åtgärderna stöds endast av SQL Server på virtuella Azure-datorer. Användning av hanterade identiteter med SQL Server lokalt till BACKUP TO URL och RESTORE FROM URL stöds inte.

Förutsättningar

  • En SQL Server på en virtuell Azure-dator med SQL Server 2022 CU17 eller senare registrerad med SQL IaaS Agent-tillägget.
  • SV-SE: Den SQL Server-instans som säkerhetskopierar till eller återställer från en URL måste konfigureras med Microsoft Entra-autentisering, oavsett om den är registrerad med tillägget eller inte.
  • Ett Azure Blob Storage-konto.
  • Giltig nätverksåtkomst till Azure Blob Storage och Windows-brandväggens behörigheter på värden för att tillåta den utgående anslutningen samt giltiga tjänstslutpunkter för lagringskonto.
  • Den primära hanterade identiteten för SQL Server på en virtuell Azure-dator behöver:

Skapa en serverautentiseringsuppgift med hanterade identiteter

För att kunna använda T-SQL-kommandona BACKUP DATABASE <database name> TO URL och RESTORE <database name> FROM URL med hanterade identiteter måste du skapa en serverautentiseringsuppgift som använder den hanterade identiteten. Namnet på autentiseringsuppgifterna representerar Azure Storage-URL:en och anger var databassäkerhetskopian lagras.

I följande exempel visas hur du skapar en autentiseringsuppgift för en hanterad identitet:

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

Satsen WITH IDENTITY = 'Managed Identity' kräver en primär hanterad identitet som tilldelats SQL Server på en virtuell Azure-dator.

Mer information om felmeddelanden som kan uppstå om den primära hanterade identiteten inte har tilldelats eller har rätt behörighet finns i avsnittet Felmeddelanden .

Säkerhetskopiera till URL med en hanterad identitet

När du har skapat autentiseringsuppgifterna kan du använda den för att säkerhetskopiera och återställa databaser till Azure Blob Storage. Kontrollera att den primära hanterade identiteten för SQL Server på den virtuella Azure-datorn har rollen Storage Blob Data Contributor tilldelad till lagringskontot.

I följande exempel visas hur du säkerhetskopierar en databas till Azure Blob Storage med hjälp av den hanterade identitetsautentiseringsuppgiften:

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

Återställ från URL med en hanterad identitet

I följande exempel visas hur du återställer en databas från Azure Blob Storage med hjälp av den hanterade identitetsautentiseringsuppgiften:

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

Felmeddelanden

Spårningsflagga 4675 kan användas för att kontrollera autentiseringsuppgifter som skapats med en hanterad identitet. Om CREATE CREDENTIAL-instruktionen kördes utan spårningsflagga 4675 aktiverad utfärdas inget felmeddelande om den primära hanterade identiteten inte har angetts för servern. Om du vill felsöka det här scenariot måste autentiseringsuppgifterna tas bort och återskapas igen när spårningsflaggan är aktiverad.

Ingen primär hanterad identitet har tilldelats

Om en primär hanterad identitet inte har tilldelats till SQL Server på en virtuell Azure-dator misslyckas säkerhetskopierings- och återställningsåtgärderna med ett felmeddelande som anger att den hanterade identiteten inte har valts.

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).`

Ingen Storage Blob Data Contributor roll har tilldelats

Om den primära hanterade identiteten för SQL Server på den virtuella Azure-datorn inte ges Storage Blob Data Contributor rollen till lagringskontot misslyckas BACKUP åtgärden med ett felmeddelande som anger att åtkomst nekas.

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.

Om den hanterade identiteten för SQL Server på den virtuella Azure-datorn inte ges Storage Blob Data Contributor rollen till lagringskontot RESTORE misslyckas åtgärden med ett felmeddelande som anger att åtkomst nekas.

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.

Problem med nätverk eller brandvägg

Om du inte har konfigurerat korrekt nätverksåtkomst till Azure Blob Storage och behörigheter för Windows-brandväggen på värden för att tillåta utgående anslutning, samt giltiga tjänstslutpunkter för lagringskonton inte har konfigurerats, misslyckas BACKUP åtgärden med ett felmeddelande som anger att åtkomst nekas.

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. 

Om du inte har konfigurerat korrekt nätverksåtkomst till Azure Blob Storage och behörigheter för Windows-brandväggen på värden för att tillåta utgående anslutning, samt giltiga tjänstslutpunkter för lagringskonton inte har konfigurerats, misslyckas RESTORE åtgärden med ett felmeddelande som anger att åtkomst nekas.

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. 

Duplicera databasnamn

När den ursprungliga databasen med samma namn finns i lagringen misslyckas säkerhetskopieringen av en ny databas till samma lagringssökväg med följande fel:

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.

Lös problemet genom att ta bort den ursprungliga databasen eller flytta de använda filerna till en annan plats innan du återställer databasen. Mer information finns i Återställa en databas till en ny plats (SQL Server).

Begränsningar

  • Hanterad identitet på servernivå stöds bara för SQL Server på en virtuell Azure-dator och inte lokalt i SQL Server. Hanterad identitet på servernivå stöds inte för Linux.

  • BACKUP TO URL eller RESTORE FROM URL med en hanterad identitet stöds endast för SQL Server på en virtuell Azure-dator. BACKUP TO URL eller RESTORE FROM URL stöds inte av SQL Server lokalt.

  • Hanterade identiteter stöds inte med redundansklusterinstans (FCI).

  • BACKUP TO URL kan bara köras med samma hanterade identitet som används för SQL Server på en virtuell Azure-dator, oavsett om servern har en eller flera instanser av SQL Server på den virtuella datorn.