2010-04-02 7 views
5

Tenemos un servidor con una base de datos que tiene una clave simétrica (Base de datos -> Seguridad -> Clave simétrica). Tenemos una copia de seguridad de las bases de datos duplicadas que estamos utilizando como base de datos de prueba, pero no tenemos esta clave allí.¿Cómo puedo duplicar una clave simétrica de SQL Server?

¿Cómo puedo duplicar esta clave simétrica (o crear una nueva exactamente como la anterior) y ponerla en las bases de datos existentes? Tiene que tener el mismo valor y nombre clave que el otro.

Esto es en SQL Server 2008.

alt text http://i39.tinypic.com/mhwnds.png

+0

creo "SQL Server 10" es probablemente mejor conocido como "SQL Server 2008" – Andomar

Respuesta

7

Al crear su clave simétrica, en primer lugar, asegurarse de que está utilizando el KEY_SOURCE, IDENTITY_VALUE parámetros y algoritmos.

Si aún no lo ha hecho, cree la clave maestra de la base de datos y el certificado para proteger su clave simétrica.

-- Create Database Master Key 
CREATE MASTER KEY ENCRYPTION BY 
PASSWORD = 'Your Database Master Key Password here' 
GO 

-- Create Encryption Certificate 
CREATE CERTIFICATE MyCertificateName 
WITH SUBJECT = 'Your Certificate Description Here' 
GO 

-- Create Symmetric Key 
CREATE SYMMETRIC KEY MyKeyName WITH 
IDENTITY_VALUE = 'Enter a key description', 
ALGORITHM = AES_256, 
KEY_SOURCE = 'Enter a key phrase here (keep very secret)' 
ENCRYPTION BY CERTIFICATE MyCertificateName; 
  • El parámetro IDENTITY_VALUE se utiliza para crear el GUID en la tabla sys.symmetric_keys, que debe ser el mismo en ambas bases de datos a trabajar.

  • El parámetro KEY_SOURCE se usa para crear la clave real, así que asegúrese de que sea exactamente igual y esté bien protegida.

  • El ALGORITHM es, por supuesto, el algoritmo que utiliza el servidor sql para cifrar y descifrar los datos, que deben ser los mismos para funcionar.

Usted debe ser capaz de ejecutar el programa anterior en ambas bases de datos (reemplaza con sus propios valores, por supuesto) y se descifrar datos cifrados con éxito en la otra base de datos.

Si su clave existente no se creó de esta manera, tendrá que descifrar todo con su clave anterior y volver a cifrarla con la nueva.

Un par de buenas fuentes de creación de claves se puede encontrar aquí:

Cuestiones relacionadas