Social Icons

twitter facebook google plus linkedin

jueves, 23 de febrero de 2012

Respaldar Certificado en SQL Server

Hola gente, el día 14 de febrero publiqué un post pequeño sobre Cifrado de bases de datos en el que hablaba, justamente, como cifrar bases de datos. En el proceso creaba una master key y un certificado. En este pequeño post crearé un backup del certificado para que luego pueda ser importado en otra base de datos.

En una base de datos creada para este propósito, creé un certificado de esta manera:


USE TEST_Certificado;
CREATE CERTIFICATE MiCertificado_TEST
ENCRYPTION BY PASSWORD = '123456'
WITH SUBJECT = 'Prueba de Certificado',
EXPIRY_DATE = '20121031';
GO

El certificado fue creado en la base de datos TEST_Certificado y el certificado se llama MiCertificado_TEST. La clave es super segura y expira el 31 de octubre de este año.
En una nueva ventana de consultas, utilicé este código para respaldar el certificaco en el directorio que se indica:

USE TEST_Certificado
BACKUP CERTIFICATE MiCertificado_TEST TO FILE='C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackupMiCertificado_TEST';
GO

Tambien se puede exportar certificado con clave privada con su respectiva clave de descifrado:

BACKUP CERTIFICATE MiCertificado_TEST TO FILE = 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackupMiCertificado_TEST_2'
WITH PRIVATE KEY (DECRYPTION BY PASSWORD='123456', FILE = 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackupMiCertificado_TEST_k' ,
ENCRYPTION BY PASSWORD = '123456' );
GO


No te pierdas la próxima entrega, en la cual mostraré como importar un certificado.

Saludos

miércoles, 15 de febrero de 2012

Licenciar una version trial de SQL Server 2008 R2

Una pregunta bien recurrente es que si se puede licenciar una version trial de SQL Server 2008 R2. La respuesta es: Si.

Si quieres probar SQL Server 2008 R2, lo puedes descargar gratuitamente desde aqui http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6362 Es una version Enterprise que dura 180 dias.

Al llegar el dia 180, el motor se bloquea. Por lo tanto, si tienes una licencia, debes ingresarla al momento de la instalacion o antes del dia 180.

Que pasa si tienes una licencia para SQL Server 2008 R2 Standard y bajaste este trial? En la instalacion introduces la licencia y solo el programa de instalacion reconoce la version de SQL Server y desactiva todas las caracteristicas correspondientes a la version Enterprise.

[caption id="attachment_1222" align="alignnone" width="300" caption="Instalacion de SQL Server 2008 R2 Trial"]Instalacion de SQL Server 2008 R2 Trial[/caption]

 

[caption id="attachment_1223" align="alignnone" width="300" caption="Reconociminto de la version segun licencia"]Reconociminto de la version segun licencia[/caption]

 

martes, 14 de febrero de 2012

Cifrando base de datos con TDE

Transparent Data Encryption es una característica que está disponible en SQL Server desde la versión 2008 y, obviamente, estará disponible en la futura versión 2012.

TDE realiza encriptacion y desencriptación de datos en tiempo real de los archivos de la base de datos (físicos) y de los archivos de log. La encriptación utiliza una clave de encriptación de base de datos (Desde ahora en adelante, DEK) que es almacenada en el registro de arranque de la base de datos, para que pueda estar disponible durante una recuperación.

Ejemplo:

Se tiene una base de datos llamada Prueba  con una tabla llamada Registro y tiene los siguientes datos:

[caption id="attachment_1215" align="alignnone" width="274" caption="Datos de la tabla Registro"]Datos de la tabla Registro[/caption]

Si realizo un respaldo de la base de datos:

  • Botón secundario en la base de datos

  • Tasks -> Back Up...


Y navego hasta la ruta C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackup y abro el respaldo que recién generé con el bloc de notas, puedo encontrar la información:

[caption id="attachment_1216" align="alignnone" width="300" caption="Vista en Notepad"]<>Vista en Notepad[/caption]

Se puede ver los datos almacenados. Es más, entrega mucha información relevante sobre el sistema.

Ahora encriptemos la base de datos ( y de pasada, borramos el respaldo anterior). Para encriptar la base de datos se siguen los siguientes pasos:

  1. Crear la master key

  2. Crear u obtener un certificado protegido por la master key

  3. Crear un DEK y protegerla con el certificado

  4. Setear la base de datos para la encriptación.



USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD='[email protected]';
GO
CREATE CERTIFICATE MiCertificado WITH SUBJECT='Mi certificado DEK';
GO
USE prueba;
GO
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MiCertificado;
ALTER DATABASE Prueba SET ENCRYPTION ON;
GO


TDE cifra hasta los respaldos que se pueden generar. Al crear uno y abrirlo con el notepad y buscar algun registro (como en el ejemplo anterior), arrojará un error:

[caption id="attachment_1217" align="alignnone" width="300" caption="Vista desde notepad del respaldo de una base de datos cifrada"]Vista desde notepad del respaldo de una base de datos cifrada[/caption]

Cabe recordar, que este proceso es transparente para las aplicaciones que funcionan sobre SQL Server.

Saludos!