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)

Den här artikeln visar hur du säkerhetskopierar och återställer 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.

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.
  • SQL Server-instansen som säkerhetskopierar till eller återställer från URL:en måste konfigureras med Microsoft Entra-autentisering, oavsett om det är den instans som ä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 hjälp av hanterade identiteter

Om du vill 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 hjälp av 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ÄLLA från URL med hjälp av en hanterad identitet

I följande exempel visas hur du återställer en databas från Azure Blob Storage med hjälp av autentiseringsuppgifterna för hanterad identitet:

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

Felmeddelanden

Använd spårningsflagga 4675 för att kontrollera autentiseringsuppgifter som skapats med en hanterad identitet. Om du kör -instruktionen CREATE CREDENTIAL utan att aktivera spårningsflagga 4675 returneras 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 du ta bort och återskapa autentiseringsuppgifterna när spårningsflaggan är aktiverad.

Ingen primär hanterad identitet har tilldelats

Om du inte tilldelar en primär hanterad identitet till SQL Server på den virtuella Azure-datorn misslyckas säkerhetskopierings- och återställningsåtgärderna med ett felmeddelande som anger att den hanterade identiteten inte är markerad.

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 du inte tilldelar Storage Blob Data Contributor rollen till den primära hanterade identiteten för SQL Server på den virtuella Azure-datorn 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 tilldelar Storage Blob Data Contributor rollen till den hanterade identiteten för SQL Server på den virtuella Azure-datorn 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 konfigurerar giltig nätverksåtkomst till Azure Blob Storage och Windows-brandväggsbehörigheter på värden för att tillåta utgående anslutning och giltiga tjänstslutpunkter för lagringskonton inte har konfigurerats, BACKUP 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
BACKUP DATABASE is terminating abnormally.

Om du inte konfigurerar giltig nätverksåtkomst till Azure Blob-lagring och inte ställer in rätt Windows-brandväggsbehörigheter på värden för att tillåta utgående anslutningar, samt om giltiga tjänstslutpunkter för lagringskontot inte konfigureras, 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 återställningen 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

  • SQL Server på en virtuell Azure-dator stöder hanterad identitet på servernivå, men det gör inte SQL Server lokalt. Linux stöder inte hanterad identitet på servernivå.

  • SQL Server på en virtuell Azure-dator stöder BACKUP TO URL och RESTORE FROM URL med en hanterad identitet som börjar med SQL Server 2022 CU17. SQL Server lokalt stöder BACKUP TO URL eller RESTORE FROM URL med en hanterad identitet från och med SQL Server 2025.

  • Redundansklusterinstansen (FCI) stöder inte hanterade identiteter.

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