Cómo activar Transparent Data Encryption (TDE) en SQL Server
Cifrar una base de datos en reposo ya no es un lujo reservado a las grandes organizaciones: con Transparent Data Encryption (TDE) en SQL Server proteges los archivos de datos, los archivos de log e incluso los backups sin cambiar una sola línea de tu aplicación. Es una de las formas más directas de cumplir requisitos de conformidad como el RGPD y de garantizar que un archivo .mdf o .bak copiado de forma indebida no se pueda leer fuera de tu servidor.
Requisitos previos
- SQL Server 2019 o superior — TDE pasó a estar disponible en la edición Standard a partir de esa versión; hasta SQL Server 2017 era exclusivo de Enterprise.
- Una cuenta con permisos elevados (miembro del rol
sysadmin). - Una base de datos de prueba para practicar antes de aplicarlo en producción.
- Una carpeta segura, fuera del servidor, para guardar el backup del certificado.
Paso 1: Crear la Master Key en la base de datos master
El cifrado en SQL Server está organizado en capas. En lo alto de esa jerarquía está la Database Master Key, guardada en la base de datos master, que protege el certificado que vas a crear a continuación. Conéctate a la instancia y ejecuta:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'UmaPass!Muito_Forte_2026';
GO
Elige una contraseña fuerte y guárdala: la necesitarás si algún día tienes que recuperar el certificado en otro servidor.
Paso 2: Crear el certificado del servidor
El certificado es la clave que, en la práctica, protegerá tu base de datos. Sigue conectado a la base de datos master:
USE master;
GO
CREATE CERTIFICATE TDE_Cert
WITH SUBJECT = 'Certificado para TDE';
GO
Fíjate en que no indicamos contraseña para el certificado: por defecto, queda protegido por la Master Key que creaste en el paso anterior.
Paso 3: Hacer backup del certificado (paso crítico)
Este es el paso que nunca debes saltarte. Si el certificado se pierde, nadie volverá a abrir la base de datos cifrada — ni siquiera tú. Haz el backup del certificado y de su clave privada de inmediato:
USE master;
GO
BACKUP CERTIFICATE TDE_Cert
TO FILE = 'C:\Backup\TDE_Cert.cer'
WITH PRIVATE KEY (
FILE = 'C:\Backup\TDE_Cert.pvk',
ENCRYPTION BY PASSWORD = 'OutraPass!Forte_2026'
);
GO
Copia los dos archivos (.cer y .pvk) a un lugar seguro y separado del servidor, y guarda las contraseñas en un gestor de credenciales. Sin ellos, restaurar la base de datos en una máquina nueva es imposible.
Paso 4: Crear la Database Encryption Key
Ahora cambia a la base de datos que quieres proteger y crea la Database Encryption Key (DEK), indicando el algoritmo y el certificado que la va a proteger:
USE MinhaBaseDeDados;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE TDE_Cert;
GO
AES_256 es el algoritmo recomendado actualmente, porque ofrece un buen equilibrio entre seguridad y rendimiento.
Paso 5: Activar el cifrado
Solo falta el interruptor final. Este comando inicia el cifrado en segundo plano, página a página, sin dejar la base de datos fuera de servicio:
ALTER DATABASE MinhaBaseDeDados
SET ENCRYPTION ON;
GO
En bases de datos grandes, este primer cifrado puede tardar un poco, pero la aplicación sigue respondiendo con normalidad durante el proceso.
Verificar el resultado
Para confirmar el estado, consulta la vista de sistema que muestra el cifrado de cada base de datos. Un encryption_state igual a 3 significa "cifrada"; el valor 2 indica que el cifrado todavía está en curso:
SELECT
DB_NAME(database_id) AS base_de_dados,
encryption_state,
percent_complete,
key_algorithm,
key_length
FROM sys.dm_database_encryption_keys;
GO
Cuando el encryption_state llegue a 3 y el percent_complete sea 0, tu base de datos estará totalmente protegida en disco.
Recuerda: TDE protege los datos en reposo. No cifra los datos en tránsito por la red (para eso usa TLS) ni los oculta a los usuarios que ya tienen permisos de lectura (para eso usa permisos y enmascaramiento).
Conclusión
En cinco pasos activaste el cifrado en reposo que protege datos, logs y backups de forma transparente para las aplicaciones. El siguiente paso natural es simular una recuperación: restaura el backup del certificado y de la base de datos en un servidor de pruebas, porque un plan de recuperación solo vale cuando se ha probado. ¿Ya has probado a abrir una base de datos cifrada en otra máquina para validar que tus backups del certificado funcionan de verdad?