Una de las novedades mas interesantes en los backups de SQL Server 2014 es la posibilidad de poderlos encriptar. En versiones anteriores si deseábamos tener seguridad en los backup debíamos encriptar toda la base de datos usando TDE. Ahora bien, aun es posible seguir encriptando la base de datos pero en 2014 podemos hacer un backup encriptado con certificados sin esa necesidad.
En este post veremos como es el procedimiento.
En este post veremos como es el procedimiento.
- Lo primero que debemos hacer es crear en el servidor una Master KEY, para lo cual usaremos el siguiente código de ejemplo:
USE master;GOCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Passw0rd!!!';
- Luego de tener la Master Key debemos crear el certificado en el servidor
Use MasterGOCREATE CERTIFICATE CertificadoBKWITH SUBJECT = 'Certificado para Backups';
- El próximo paso es hacer un backup del Certificado para luego poderlo restaurar en el servidor destino o bien tenerlo como respaldo.
USE masterGOBACKUP CERTIFICATE CertificadoBKTO FILE = 'c:\tmp\BKPCERT.cer'WITH PRIVATE KEY (FILE = 'C:\TMP\BKP_Key.pvk' ,ENCRYPTION BY PASSWORD = 'mY_P@$$w0rd' )GO
- Ya tenemos la instancia lista para poder usar la encriptación, ahora lo que haremos es realizar un backup encriptado usando TSQL, también se puede hacer por UI.
BACKUP DATABASE [AdventureWorks2012]TO DISK = N'C:\tmp\adw_encrypt.bak'WITHENCRYPTION(ALGORITHM = AES_256,SERVER CERTIFICATE = CertificadoBK),STATS = 10GO
BackupCompression y Encriptación
La encriptación no tiene efectos negativos sobre la compresión del backup, en otras palabras podemos tener el backup comprimido y encriptado al mismo tiempo. Aquí un cuadro de resultados
Base de datos | Size Encriptado & Comprimido | Size Comprimido & no Encriptado | |
ADW | 45MB | 45MB |