Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server na VM do Azure (somente Windows)
Este artigo ensina você a fazer backup e a restaurar bancos de dados do SQL Server em Máquinas Virtuais (VM) do Azure a partir de uma URL usando identidades gerenciadas do Microsoft Entra.
Visão geral
A partir da Atualização Cumulativa 17 (CU17) do SQL Server 2022, você pode usar identidades gerenciadas com credenciais do SQL Server para fazer backup e restaurar o SQL Server de bancos de dados de VM do Azure a partir do Armazenamento de Blobs do Azure. As identidades gerenciadas fornecem uma identidade para os aplicativos usarem ao se conectarem a recursos que oferecem suporte à autenticação do Microsoft Entra.
Pré-requisitos
- Um SQL Server na VM do Azure com o SQL Server 2022 CU17 ou posterior registrado com a extensão do Agente IaaS do SQL.
- A instância do SQL Server que está fazendo backup ou restaurando da URL deve ser configurada com a autenticação do Microsoft Entra, independentemente de ser ou não a instância registrada com a extensão.
- Uma conta de armazenamento de Blobs do Azure.
- Acesso de rede válido ao Armazenamento de Blobs do Azure, permissões do Firewall do Windows no host para permitir a conexão de saída e pontos de extremidade de serviço válidos da conta de armazenamento.
- A identidade gerenciada primária para o SQL Server na VM do Azure precisa:
- Para ser atribuído com uma identidade gerenciada atribuída pelo usuário ou uma identidade gerenciada atribuída pelo sistema. Para obter mais informações, consulte Configurar identidades gerenciadas em VMs (máquinas virtuais) do Azure.
- Para que o papel
Storage Blob Data Contributorda identidade gerenciada primária seja atribuído à conta de armazenamento.
Criar uma credencial de servidor usando identidades gerenciadas
Para usar os comandos T-SQL e BACKUP DATABASE <database name> TO URL com identidades RESTORE <database name> FROM URL gerenciadas, você precisa criar uma credencial de servidor que use a identidade gerenciada. O nome da credencial representa a URL de armazenamento do Azure e indica onde o backup do banco de dados é armazenado.
O exemplo a seguir mostra como criar uma credencial para uma identidade gerenciada:
CREATE CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>]
WITH IDENTITY = 'Managed Identity'
A WITH IDENTITY = 'Managed Identity' cláusula requer uma identidade gerenciada primária atribuída ao SQL Server na VM do Azure.
Para obter mais informações sobre mensagens de erro que podem ocorrer se a identidade gerenciada primária não for atribuída ou tiver permissões adequadas, consulte a seção Mensagens de erro .
BACKUP para uma URL com uma identidade gerenciada
Depois de criar a credencial, você pode usá-la para fazer backup e restaurar bancos de dados no Armazenamento de Blobs do Azure. Verifique se a identidade gerenciada primária do SQL Server na VM do Azure tem a Storage Blob Data Contributor função atribuída à conta de armazenamento.
O exemplo a seguir mostra como fazer backup de um banco de dados no Armazenamento de Blobs do Azure usando a credencial de identidade gerenciada:
BACKUP DATABASE [AdventureWorks]
TO URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'
RESTAURAR da URL com uma identidade gerenciada
O exemplo a seguir mostra como restaurar um banco de dados do Armazenamento de Blobs do Azure usando a credencial de identidade gerenciada:
RESTORE DATABASE [AdventureWorks]
FROM URL = 'https://<storage-account-name>.blob.core.windows.net/<container-name>/AdventureWorks.bak'
Mensagens de erro
sinalizador de rastreamento 4675 pode ser usado para verificar as credenciais criadas com uma identidade gerenciada. Se a instrução CREATE CREDENTIAL foi executada sem o sinalizador de rastreamento 4675 habilitado, nenhuma mensagem de erro será emitida se a identidade gerenciada primária não estiver definida para o servidor. Para solucionar esse cenário, a credencial deve ser excluída e recriada novamente quando o sinalizador de rastreamento estiver habilitado.
Nenhuma identidade gerenciada primária atribuída
Se uma identidade gerenciada primária não for atribuída ao SQL Server na VM do Azure, as operações de backup e restauração falharão com uma mensagem de erro indicando que a identidade gerenciada não está selecionada.
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).`
Nenhuma Storage Blob Data Contributor função atribuída
Se a identidade gerenciada primária do SQL Server na VM do Azure não receber a Storage Blob Data Contributor função para a conta de armazenamento, a BACKUP operação falhará com uma mensagem de erro indicando que o acesso foi negado.
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.
Se a identidade gerenciada do SQL Server na VM do Azure não receber a atribuição da função na conta de armazenamento, a Storage Blob Data Contributor operação falhará com uma mensagem de erro indicando que o acesso foi negado.
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 rede ou firewall
Se você não configurou o acesso de rede válido ao armazenamento de Blobs do Azure, as permissões do Firewall do Windows no host para permitir a conexão de saída e os pontos de extremidade de serviço da conta de armazenamento válidos, a operação BACKUP falhará com uma mensagem de erro indicando que o acesso foi negado.
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.
Se você não configurou o acesso de rede válido ao armazenamento de Blobs do Azure, as permissões do Firewall do Windows no host para permitir a conexão de saída e os pontos de extremidade de serviço da conta de armazenamento válidos, a operação RESTORE falhará com uma mensagem de erro indicando que o acesso foi negado.
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.
Nome do banco de dados duplicado
Quando o banco de dados original com o mesmo nome existir no armazenamento, o backup de um novo banco de dados para o mesmo caminho de armazenamento falhará com o seguinte erro:
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 esse problema, exclua o banco de dados original ou mova os arquivos usados para um local diferente antes de restaurar o banco de dados. Para obter mais informações, consulte Restaurar um banco de dados para um novo local (SQL Server).
Limitações
A identidade gerenciada no nível do servidor só tem suporte para o SQL Server na VM do Azure e não no SQL Server local. Não há suporte para a identidade gerenciada no nível do servidor para Linux.
BACKUP TO URLouRESTORE FROM URLcom uma identidade gerenciada só há suporte para o SQL Server na VM do Azure.BACKUP TO URLouRESTORE FROM URLnão tem suporte do SQL Server local.Não há suporte para identidades gerenciadas com FCI (instância de cluster de failover).
BACKUP TO URLsó pode ser executado com a mesma identidade gerenciada usada para o SQL Server na VM do Azure, independentemente de o servidor ter uma ou muitas instâncias do SQL Server na VM.