2013/12/23

Encriptación de Backups en SQL Server 2014 CTP2

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.
  • 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;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Passw0rd!!!';
  • Luego de tener la Master Key debemos crear el certificado en el servidor
Use Master
GO

CREATE CERTIFICATE CertificadoBK
WITH 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 master
GO
BACKUP CERTIFICATE CertificadoBK 
TO 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'
 WITH
 ENCRYPTION
 (
 ALGORITHM = AES_256,
 SERVER CERTIFICATE = CertificadoBK
 ),
 STATS = 10
 GO

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