-
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.