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
goCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Landry123*'
2) Criar um Certificado no banco MASTER, para ser
utilizado na criptografia do Backup:
Use
Master
goCREATE CERTIFICATE BackupEncryptCert
WITH SUBJECT = 'Certificado para criptografia de Backup'
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
goCREATE 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
4 comentários:
Show... Nota 10!
Muito bem explicado, me auxiliou bastante, Obrigada.
Gostaria de saber para quais versões do sqlserver o TDE está disponivél.
Postar um comentário