Criptografia no Backup do SQL Server – Dsai Consultoria skip to Main Content

Criptografia no Backup do SQL Server

A partir do SQL Server 2014 a Microsoft incluiu a criptografia no Backup, proporcionando mais segurança as informações armazenadas nos bancos de dados.  Contudo, criptografar Backups requer além da alteração nos scripts, alguns cuidados no armazenamento de chaves e senhas, podendo até inviabilizar um Restore!

Segue abaixo lista de restrições no uso de criptografia no Backup:

  • As edições do SQL Server Express e Web não suportam criptografia no Backup.
  • A cláusula do Backup NOINIT não pode ser utilizada, apenas INIT e FORMAT são aceitas.
  • Além da permissão para executar o comando Backup, o Login necessita de permissão VIEW DEFINITION para manipular certificados e chaves.

Atendendo os requisitos acima, basta seguir os passos abaixo para criptografar os Backups do SQL Server:

1) Criar uma Master Key no banco MASTER, como pré-requisito para criação de certificado utilizado na criptografia:

USE master
go
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Landry123*'

3) Exportar o Certificado para arquivo, caso seja necessário restaurar o banco em outra instância de SQL Server:

BACKUP CERTIFICATE BackupEncryptCert 
TO FILE = 'D:\Landry\BackupEncryptCert.cer'
WITH PRIVATE KEY (
FILE = 'D:\Landry\BackupEncryptCert.key',
ENCRYPTION BY PASSWORD = 'Landry123*')

ATENÇÃO!!!!!! Guardar os arquivos gerados no BACKUP CERTIFICATE (.cer e .key) e a senha em local seguro, você vai precisar deles quando for restaurar o backup em outra instância de SQL Server.

4) Estamos prontos para executar os Backups utilizando a nova cláusula ENCRYPTION do comando BACKUP como abaixo:

BACKUP DATABASE AdventureWorks 
TO DISK = N'D:\Landry\AdventureWorks_Encrypt.bak' 
WITH COMPRESSION, STATS = 10,
ENCRYPTION (ALGORITHM = AES_256, 
SERVER CERTIFICATE = BackupEncryptCert)

Se houver necessidade de restaurar o Backup em outra instância de SQL Server, primeiro tem que criar a Master Key (se não foi criada), em seguida importar o Certificado utilizado no Backup.  Se o Certificado não for importado antes do Restore, você irá receber o erro abaixo:

Msg 33111, Level 16, State 3, Line 59
Cannot find server certificate with thumbprint
‘0x4B40E913C8B1FD1692AA0E05D879CD095D774B20’.
Msg 3013, Level 16, State 1, Line 59
RESTORE DATABASE is terminating abnormally.

Preparamos uma instância para receber Backups feitos com criptografia em outra instância utilizando os passos abaixo:

1) Criação da Master Key

USE master
go
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Landry123*'

2) Importação do Certificado

CREATE CERTIFICATE BackupEncryptCert 
FROM FILE = 'D:\Landry\BackupEncryptCert.cer'
WITH PRIVATE KEY ( 
FILE = 'D:\Landry\BackupEncryptCert.key', 
DECRYPTION BY PASSWORD = 'Landry123*')

Pronto, basta restaurar os Backups normalmente.

Até o próximo post.
Landry

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Back To Top