Atualmente, as violações de segurança ocorrem com muita frequência. Como administradores de banco de dados e/ou desenvolvedores de software, devemos todos tomar cuidado extra com dados confidenciais e garantir que estamos criptografando corretamente.
A partir do SQL 2014, o SQL Server agora tem a capacidade de criptografar seus dados durante o processo de backup. Não só isso, mas eles fizeram o processo simples. Antes de 2014, a única maneira de criptografar backups era a Transparent Data Encryption (TDE) , e isso requer Enterprise Edition, o que tornava isso fora de alcance para a maioria.
Primeiro você deve criar uma chave mestra e um certificado (ou chave assimétrica) . Você notará que o certificado tem uma data de expiração. Se isso expirar, não será possível restaurar seu backup, mas você não poderá executar novos backups até criar um novo certificado. Dependendo do seu ambiente, você pode ter que ter um processo rotineiro de gerenciamento de certificados e renovações. Se você não fizer isso, tome cuidado com a data definida para evitar isso.
//criacao da chave USE Master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'COD1G0SimPl3$6hwD8'; GO USE Master; GO CREATE CERTIFICATE ExampleCert1 WITH SUBJECT = 'Teste cripto', EXPIRY_DATE = '20200831'; GO //verificacao se criou corretamente SELECT C.name,C.certificate_id,C.pvt_key_encryption_type_desc,C.subject,C.start_date,C.expiry_date FROM sys.certificates AS C WHERE C.name = 'ExampleCert1'; //setar premissao use [Master] GO GRANT VIEW DEFINITION ON CERTIFICATE::[ExampleCert1] TO userCodigoSimples GO
Usando a GUI,
No banco de dados MASTER, vá para Segurança e depois para Usuário.
Escolha o usuário que você deseja conceder permissão para ir para as propriedades.
Clique em Securables, você vai notar que está em branco. Você precisa escolher a pesquisa.
Escolha CERTIFICADOS ,
Verifique o Certificado para o qual você recebeu direitos e marque GRANT para VER DEFINIÇÃO
Agora tente fazer o backup do seu banco de dados. Observe a opção Criptografia e o nome do certificado do servidor.
//backup BACKUP DATABASE [AdventureWorks2014] TO DISK = N'C:\temp\AWEncrypt.bak' WITH COMPRESSION, ENCRYPTION ( ALGORITHM = AES_256, SERVER CERTIFICATE = [ExampleCert1] ), STATS = 10 GO //restore USE [master] RESTORE DATABASE [AdventureWorks2014] FROM DISK = N 'C: \ temp \ AWEncrypt.bak' COM ARQUIVO = 1, NOUNLOAD, STATS = 5 IR
A restauração é apenas uma restauração normal, desde que a chave e o certificado estejam presentes nesse servidor. É um processo bastante simples para garantir que seus backups sejam criptografados. A parte complicada é certificar-se de fazer backup da chave mestra e do certificado e protegê-los com segurança. Se você não os tiver, não poderá restaurar (vale a pena repetir). Portanto, dê um passo extra se puder e tornar seus dados ainda mais seguros, criptografando seus backups.
Referencias: CSharCorner / Microsoft
Um grande abraço!