How to – Backup to Azure Storage Account using SAS

22 de novembro de 2019 0 Por Oberdan Schaider

Este post traz um conteúdo bem prático, levando-nos diretamente ao assunto. Assim, a ideia principal é realizar o passo a passo para fazer backups de bancos SQL Server e enviá-los para o Azure. Vamos utilizar o SQL Server 2016 para demonstrar como fazer backups enviando-os para um storage account no Azure.

Após a criação de uma account, vamos precisar criar um grupo de recursos dentro do Azure. Feita a criação, precisaremos criar um storage account.

Neste cenário, utilizamos uma storage account do tipo “General-purpose v2”, que é recomendado para a maioria dos cenários. Porém, você pode utilizar uma account do tipo BlobStorage.

Após, faremos a criação de um container:

Após a criação dos nossos objetos no Azure, vamos utilizar uma SAS (Shared Access Signature) que será nossa chave de autenticação para realizar as operações necessárias. Iremos utilizar essa chave no SQL Server para fazer o backup diretamente no container. Também, podemos utilizar essa mesma chave para restaurar backup, por exemplo.

No storage account, vamos configurar nossa SAS. Por questões de exemplo e demonstração, utilizaremos as configurações de full control, mas para seu ambiente, deve ser analisado quais as permissões devem ser utilizadas. Além disso, você pode configurar o/os IP´s que podem ter acesso:

Após a geração da chave, vamos criar uma credencial no SQL Server para fazer a autenticação. Abaixo, modelo de script que pode ser utilizado para criar a credencial no SQL Server:

CREATE CREDENTIAL [https://mystorageaccountname.blob.core.windows.net/containername] 
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
SECRET = '<SAS_TOKEN>';  

Um cuidado que devemos ter no momento da criação da chave no SQL Server é que, no portal do Azure, quando a SAS é gerada, ela é iniciada no seguinte padrão:

Quando executarmos o script de criação da credencial no SQL Server, devemos remover o “?”.

Após a criação da credencial, podemos testá-la fazendo um backup. Segue modelo de script utilizado na demo:

backup database backupdemo to url = '[https://mystorageaccountname.blob.core.windows.net/containername]'

Feito! Nosso backup foi enviado para um blob no Azure. Para garantirmos que o backup realmente está lá, podemos acessar o container diretamente no portal do Azure e verificar os arquivos que estão armazenados.

Outra forma de verificar se o backup foi enviado para o blob, que particularmente gostamos e utilizamos bastante, é o Azure Storage Explorer.

Link para download: https://azure.microsoft.com/en-us/features/storage-explorer/

Nele, você pode conectar ao portal do Azure utilizando a connection string gerada inicialmente, por exemplo, e navegar pelo blob container.

Qualquer dúvida ou sugestão entre em contato!

Abraço #equipecrespidb!