Compartir a través de


Copia de seguridad y restauración a la URL mediante identidades administradas

Se aplica a:SQL Server en una máquina virtual de Azure (solo Windows)

En este artículo se explica cómo realizar copias de seguridad y restaurar bases de datos de SQL Server en Azure Virtual Machines (VM) desde una dirección URL mediante identidades administradas de Microsoft Entra.

Información general

A partir de la actualización acumulativa 17 (CU17) de SQL Server 2022, puede usar identidades administradas con credenciales de SQL Server para realizar copias de seguridad y restaurar SQL Server en bases de datos de máquinas virtuales de Azure desde Azure Blob Storage. Las identidades administradas proporcionan una identidad que usan las aplicaciones al conectarse a los recursos que admiten la autenticación de Microsoft Entra.

El uso de identidades administradas en las credenciales para las operaciones BACKUP TO URL y RESTORE FROM URL T-SQL solo es admitido por SQL Server en máquinas virtuales de Azure. No se admite el uso de identidades administradas con SQL Server local a BACKUP TO URL y RESTORE FROM URL .

Prerrequisitos

  • Una máquina virtual de SQL Server en Azure con SQL Server 2022 CU17 o posterior registrada con la extensión Agente de IaaS de SQL.
  • La instancia de SQL Server en la que se realiza la copia de seguridad o la restauración desde la dirección URL debe configurarse con la autenticación de Microsoft Entra, tanto si es la instancia registrada con la extensión como si no.
  • Una cuenta de Azure Blob Storage.
  • Acceso de red válido a los permisos de Azure Blob Storage y Firewall de Windows en el host para permitir la conexión saliente y los puntos de conexión de servicio de la cuenta de almacenamiento válidos.
  • La identidad administrada principal para SQL Server en máquinas virtuales de Azure necesita:

Creación de una credencial de servidor mediante identidades administradas

Para usar los comandos BACKUP DATABASE <database name> TO URL T-SQL y RESTORE <database name> FROM URL con identidades administradas, debe crear una credencial de servidor que use la identidad administrada. El nombre de credencial representa la dirección URL de Almacenamiento de Azure e indica dónde se almacena la copia de seguridad de la base de datos.

En el ejemplo siguiente se muestra cómo crear una credencial para una identidad administrada:

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

La WITH IDENTITY = 'Managed Identity' cláusula requiere una identidad administrada principal asignada a SQL Server en la máquina virtual de Azure.

Para obtener más información sobre los mensajes de error que pueden producirse si la identidad administrada principal no está asignada o tiene permisos adecuados, consulte la sección Mensajes de error .

Realizar una copia de seguridad en una URL con identidad administrada

Después de crear la credencial, puede usarla para realizar copias de seguridad y restaurar bases de datos en Azure Blob Storage. Asegúrese de que la identidad administrada principal de la máquina virtual de SQL Server en Azure tiene el Storage Blob Data Contributor rol asignado a la cuenta de almacenamiento.

En el ejemplo siguiente se muestra cómo realizar una copia de seguridad de una base de datos en Azure Blob Storage mediante la credencial de identidad administrada:

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

Restaurar desde una URL con una identidad administrada

En el ejemplo siguiente se muestra cómo restaurar una base de datos desde Azure Blob Storage mediante la credencial de identidad administrada:

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

Mensajes de error

marca de seguimiento 4675 se puede usar para comprobar las credenciales creadas con una identidad administrada. Si la instrucción CREATE CREDENTIAL se ejecutó sin la marca de seguimiento 4675 habilitada, no se emite ningún mensaje de error si la identidad administrada principal no está establecida para el servidor. Para solucionar este escenario, la credencial se debe eliminar y volver a crear una vez habilitada la marca de seguimiento.

Ninguna identidad administrada principal asignada

Si una identidad administrada principal no está asignada a SQL Server en la máquina virtual de Azure, las operaciones de copia de seguridad y restauración producirán un mensaje de error que indica que la identidad administrada no está seleccionada.

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

No se ha asignado ningún Storage Blob Data Contributor rol

Si la identidad administrada principal de la máquina virtual de SQL Server en Azure no tiene asignado el Storage Blob Data Contributor rol a la cuenta de almacenamiento, se producirá un error en la operación con un mensaje de error que indica que se deniega el BACKUP acceso.

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.

Si la identidad administrada de la máquina virtual de SQL Server en Azure no tiene asignado el Storage Blob Data Contributor rol a la cuenta de almacenamiento, se producirá un error en la operación con un mensaje de error que indica que se deniega el RESTORE acceso.

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.

Problemas de red o firewall

Si no ha configurado una configuración válida de acceso de red al almacenamiento de blobs de Azure y los permisos del Firewall de Windows en el host para permitir la conexión saliente, y no están configurados los puntos de conexión de servicio válidos de la cuenta de almacenamiento, la operación BACKUP falla con un mensaje de error que indica que el acceso está denegado.

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. 

Si no ha configurado una configuración válida de acceso de red al almacenamiento de blobs de Azure y los permisos del Firewall de Windows en el host para permitir la conexión saliente, y no están configurados los puntos de conexión de servicio válidos de la cuenta de almacenamiento, la operación RESTORE falla con un mensaje de error que indica que el acceso está denegado.

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. 

Nombre de base de datos duplicado

Cuando la base de datos original con el mismo nombre existe en el almacenamiento, se producirá un error en la copia de seguridad de una nueva base de datos en la misma ruta de acceso de almacenamiento:

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.

Para resolver este problema, quite la base de datos original o mueva los archivos usados a una ubicación diferente antes de restaurar la base de datos. Para obtener más información, vea Restaurar una base de datos a una nueva ubicación (SQL Server).

Limitaciones

  • La identidad administrada de nivel de servidor solo se admite para SQL Server en máquinas virtuales de Azure y no en SQL Server local. La identidad administrada de nivel de servidor no se admite para Linux.

  • BACKUP TO URL o RESTORE FROM URL con una identidad administrada solo se admite para SQL Server en una máquina virtual de Azure. BACKUP TO URL o RESTORE FROM URL no es compatible con SQL Server local.

  • Las identidades administradas no se admiten con la instancia de clúster de conmutación por error (FCI).

  • BACKUP TO URL solo se puede ejecutar con la misma identidad administrada que se usa para SQL Server en la máquina virtual de Azure, tanto si el servidor tiene una o varias instancias de SQL Server en la máquina virtual.