A Transparent Data Encryption (TDE) criptografa o banco de dados usando uma Chave de Criptografia do Banco de Dados (DEK) armazenada no registro de inicialização do banco de dados. A DEK é, por sua vez, protegida pela chave mestra do banco de dados, que por sua vez é protegida pela chave mestra de serviço
-
O primeiro passo envolve a criação de uma chave mestra de criptografia:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Password';
GO
-
Depois de criar a chave mestra de criptografia, crie o certificado que será usado para criptografar o banco de dados:
CREATE CERTIFICATE servercertificate WITH SUBJECT = 'DataCertificate';
-
Quando a chave mestra e o certificado são criados, você pode criar a DEK para o banco de dados específico, usando a instrução CREATE DATABASE ENCRYPTION KEY:
USE DecryptTesting;
GO
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE servercertificate;
GO
Você receberá um aviso na janela de resultados:
Aviso: O certificado usado para criptografar a chave de criptografia do banco de dados não foi submetido a backup. Você deve fazer o backup imediatamente do certificado e da chave privada associada ao certificado. Se o certificado ficar indisponível ou se você precisar restaurar ou anexar o banco de dados em outro servidor, você deve ter backups do certificado e da chave privada ou não conseguirá abrir o banco de dados.
Ao usar o TDE, crie um backup do certificado do servidor no banco de dados mestre. Você pode usar a instrução BACKUP CERTIFICATE para criar um backup do certificado e da chave privada, ambos necessários para a recuperação do certificado. A senha da chave privada não precisa ser igual à senha da chave mestra do banco de dados:
BACKUP CERTIFICATE ServerCertificate TO FILE = 'ServerCertExport' WITH PRIVATE KEY ( FILE = 'PrivateKeyFile', ENCRYPTION BY PASSWORD = '<PrivateKeyPasswordHere>' );
Agora você pode criptografar o banco de dados:
ALTER DATABASE DecryptTesting SET ENCRYPTION ON;