Tecnología

Inicio

Cómo cifrar columnas en SQL Server 2008

Cómo cifrar columnas en SQL Server 2008


SQL Server 2008 es un servidor de base de datos relacional producido por modelo de Microsoft. Ofrece características tales como permitir que los datos sean auto-tuning, auto-organización y auto-mantenimiento. También ofrece el tiempo de inactividad de casi cero. Se utiliza el nuevo tipo de datos FILESTREAM, que puede ser utilizado para abrir cualquier archivo almacenado dentro de su base de datos. Utiliza algoritmos de cifrado para proteger los datos de modo que sólo los usuarios especificados puedan leerlo. SQL Server 2008 se puede utilizar para mantener los datos utilizados en el transporte a través de redes y la información que en lugar seguro. El cifrado de columnas en SQL Server 2008 requiere unos pocos pasos para configurar.

Instrucciones

1 Abrir un terminal en su servidor SQL e introduzca este comando:

USO AdventureWorks2008R2;

IR

Si no hay una clave maestra, crear una ahora.

SI NO EXISTE

(SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)

Crear archivo maestro CLAVE DE CIFRADO POR

CONTRASEÑA = '# 23987hxJKL969 ghf0% 94467GRkjg5k3fd117r $$ # 1946kcj $ n44nhdlj'

IR

Crear certificado HumanResources037

CON OBJETO = 'número de empleados de la Seguridad Social ";

IR

CREAR clave simétrica SSN_Key_01

WITH ALGORITHM = AES_256

CIFRADO DE CERTIFICADO HumanResources037;

IR

USO [AdventureWorks2008R2];

IR

Crear una columna en la que almacenar los datos cifrados.

ALTER TABLE HumanResources.Employee

ADD EncryptedNationalIDNumber varbinary(128);

IR

Abra la clave simétrica con la que para cifrar los datos.

ABIERTO clave simétrica SSN_Key_01

DESCIFRADO POR CERTIFICADO HumanResources037;

Cifrar el valor de la columna con NationalIDNumber simétrica

SSN_Key_01 clave. Guardar el resultado en la columna EncryptedNationalIDNumber.

ACTUALIZACIÓN HumanResources.Employee

SET EncryptedNationalIDNumber = EncryptByKey (Key_GUID ( 'SSN_Key_01'), NationalIDNumber);

IR

Comprobar el cifrado. En primer lugar, abrir la clave simétrica con la que para descifrar los datos.

ABIERTO clave simétrica SSN_Key_01

DESCIFRADO POR CERTIFICADO HumanResources037;

IR

Ahora la lista original de la identificación, el ID de cifrado y descifrado el texto cifrado. Si el descifrado trabajó, el original y el ID de descifrado coincidirán.

SELECT NationalIDNumber, EncryptedNationalIDNumber

AS 'Encrypted ID Number',

CONVERTIR (nvarchar, DecryptByKey (EncryptedNationalIDNumber))

AS 'Número de Identificación descifrado'

DE HumanResources.Employee;

IR.

2 Añadir un autenticador a su cifrado con este comando:

USO AdventureWorks2008R2;

Si no hay una clave maestra, crear una ahora.

SI NO EXISTE

(SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)

Crear archivo maestro CLAVE DE CIFRADO POR

CONTRASEÑA = '# 23987hxJKL95QYV4369 ghf0% lekjg5k3fd117r $$ # 1946kcj $ n44ncjhdlj'

IR

Crear certificado Sales09

CON OBJETO = 'números de la tarjeta de crédito del cliente';

IR

CREAR clave simétrica CreditCards_Key11

WITH ALGORITHM = AES_256

CERTIFICADO DE CIFRADO Sales09;

IR

Crear una columna en la que almacenar los datos cifrados.

ALTER TABLE Sales.CreditCard

ADD CardNumber_Encrypted varbinary(128);

IR

Abra la clave simétrica con la que para cifrar los datos.

ABIERTO clave simétrica CreditCards_Key11

Descifrado Sales09 CERTIFICADO;

Cifrar el valor de la columna CardNumber utilizando la clave simétrica CreditCards_Key11. Guardar el resultado en la columna CardNumber_Encrypted.

ACTUALIZACIÓN Sales.CreditCard

SET CardNumber_Encrypted = EncryptByKey (Key_GUID ( 'CreditCards_Key11'), CardNumber, 1, HashBytes ( 'SHA1', CONVERT (varbinary, CreditCardID)));

IR

Comprobar el cifrado. En primer lugar, abrir la clave simétrica con la que para descifrar los datos.

ABIERTO clave simétrica CreditCards_Key11

Descifrado Sales09 CERTIFICADO;

IR

Ahora enumerar el número original de la tarjeta, el número de tarjeta de cifrado y descifrado el texto cifrado. Si el descifrado trabajó, el número original coincidirá con el número de descifrado.

SELECT CardNumber, CardNumber_Encrypted

AS 'Encrypted card number', CONVERT(nvarchar,

DecryptByKey (CardNumber_Encrypted, 1,

HashBytes ( 'SHA1', CONVERT (varbinary, CreditCardID))))

AS 'número de tarjeta de descifrado' DE Sales.CreditCard;

IR.

3 Compruebe que ha introducido los comandos correctos y confirme los datos cifrados al tratar de acceder a él sin autenticación.