Configurar TDE: master key, certificado, backup do certificado e progresso da criptografia
SQL ServerSegurançaComando
USE master;
IF NOT EXISTS (SELECT 1 FROM sys.symmetric_keys WHERE name = N'##MS_DatabaseMasterKey##')
CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<GucluParola_1>';
CREATE CERTIFICATE [TDE_Cert_2026]
WITH SUBJECT = N'TDE certificate', EXPIRY_DATE = '20361231';
-- Back it up NOW: without cert + private key the backups cannot be restored anywhere
BACKUP CERTIFICATE [TDE_Cert_2026]
TO FILE = N'D:\Keys\TDE_Cert_2026.cer'
WITH PRIVATE KEY (FILE = N'D:\Keys\TDE_Cert_2026.pvk',
ENCRYPTION BY PASSWORD = N'<GucluParola_2>');
USE [Musteri];
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE [TDE_Cert_2026];
ALTER DATABASE [Musteri] SET ENCRYPTION ON;
-- Progress and certificate backup date:
SELECT DB_NAME(dek.database_id) AS db, dek.encryption_state_desc, dek.percent_complete,
dek.encryption_scan_state_desc, c.name AS cert_name, c.expiry_date, c.pvt_key_last_backup_date
FROM sys.dm_database_encryption_keys dek
LEFT JOIN master.sys.certificates c ON c.thumbprint = dek.encryptor_thumbprint;
-- On the target server (before restore / AG secondary):
-- CREATE CERTIFICATE [TDE_Cert_2026] FROM FILE = N'D:\Keys\TDE_Cert_2026.cer'
-- WITH PRIVATE KEY (FILE = N'D:\Keys\TDE_Cert_2026.pvk', DECRYPTION BY PASSWORD = N'<GucluParola_2>');O que faz
Cria uma database master key e um certificado no master, faz backup do certificado com sua chave privada, cria uma database encryption key AES-256 e criptografa em repouso os arquivos de dados e de log; mostra o progresso do scan de criptografia em background.
Quando usar
Para requisitos de criptografia de dados em repouso, como GDPR/PCI, e contra roubo de arquivos de backup e arquivos MDF/LDF.
Atenção
Se o backup do certificado + chave privada ou sua senha for perdido, o banco TDE e todos os seus backups ficam ilegíveis PERMANENTEMENTE; guarde o backup em um cofre seguro, longe do servidor. Habilitar TDE em qualquer banco também criptografa o tempdb (um pequeno custo de CPU no servidor inteiro). O scan de criptografia é pesado em I/O; no 2019+ ele pode ser pausado com ALTER DATABASE ... SET ENCRYPTION SUSPEND/RESUME. Para AG/log shipping, o certificado precisa ser instalado antes em cada servidor de destino. O TDE não criptografa dados em memória nem na rede.
Relacionados
- Configurar o SQL Server Audit: logins, mudanças de permissão e acesso a tabelas
- Encontrar usuários órfãos e remapeá-los para logins (após restore / AG)
- Auditoria de logins e permissões: membros de sysadmin, permissões arriscadas, senhas fracas
- Criar uma ledger table, ler seu histórico de alterações e verificar a integridade