2011-06-16 19 views
9

Tengo que hacer una copia local de una base de datos remota de SQL Server. Hice esto usando Tasks> Backup from Management Studio. Luego restauré localmente la copia de seguridad, que parece tener todo: tablas, usuarios, clave simétrica y certificado.Restauración de la base de datos de SQL Server - No se abre la clave maestra

Cuando intento realizar una selección que me obliga a abrir la clave simétrica y descifrar por el certificado, me sale este error:

Please create a master key in the database or open the master key in the session before performing this operation. 

¿Por qué se me pide para esto, y por qué no lo hace se abre automáticamente como lo hace en el servidor remoto?

He intentado cambiar la llave maestra, pero sin la contraseña original, no puedo hacer mucho.

+0

Hmm, espero que no es fácil restaurar una llave maestra sin la contraseña, que es donde la seguridad de que todo viene de.Supongo que esta podría ser una lección sobre el uso de la criptografía de clave pública para proteger su clave maestra y hacer una copia de seguridad del certificado en un lugar seguro. –

+1

@Petey tal vez me falta algo obvio aquí; en la máquina original, no necesita abrir la clave, solo puede ejecutar el procedimiento almacenado. ¿Hay alguna falla en mi exportación/importación? – ashes999

+0

La forma más sencilla de resolver esto es hacer una copia de seguridad de la clave maestra de la base de datos y asignarle una contraseña para proteger el archivo. Luego restaure la clave maestra de la base de datos usando la contraseña de la base de datos restaurada. Esto funcionará sin que necesite conocer la contraseña original utilizada para crear el DMK, siempre que el SMK también lo cifre en su sistema de producción, que es el predeterminado a menos que se elimine el cifrado por clave. –

Respuesta

6

el problema es el SMK ha cambiado (ya que la máquina ha cambiado). Hay un artículo que lo explica here. Solo exporte e importe SMK, teniendo en cuenta que los datos encriptados de su sistema copiado serán ilegibles.

artículos de MSDN:

0

No puede omitir el cifrado. Consulte esto link para obtener la palabra oficial de Microsoft.

+0

No estoy buscando eludir. Estoy buscando replicar, y ahora ya no puedo desencriptar datos en la nueva máquina. He editado mi pregunta para que quede más clara. – ashes999

2

Aquí es un buen artículo específicamente en la migración de una base de datos que incluye cifrado:

http://www.sql-server-performance.com/2009/migrating-databases-checklist-part3/3/

Pero, en resumen, es necesario conocer la contraseña original para moverlo.

Puede copia de seguridad y restaurar la clave (es decir, se replican como usted menciona) pero tendrá acceso al servidor remoto, capacidad de crear copias de seguridad o copia de copia de seguridad con contraseñas originales:

http://msdn.microsoft.com/en-us/library/ff848768.aspx

Esta conversación foro también puede resultar útil para la comprensión:

http://www.sqlservercentral.com/Forums/Topic775644-146-1.aspx

+0

+1 Bonitos enlaces, pero no resuelve mi problema. – ashes999

1

Same problem solved without data loss - if you have the password creating the master key

La llave maestra en la base de datos está cifrada con la clave maestra del servicio. Se abrió automáticamente cuando usaste la llave maestra.

Ahora la clave maestra de servicio no puede abrir la llave maestra y SQL le solicita que "ABRA LA CLAVE PRINCIPAL DECRYPTION POR CONTRASEÑA = 'contraseña'" manualmente o cree la llave maestra.

Al agregar el cifrado mediante la clave maestra de servicio del NUEVO SERVIDOR, nuevamente se permitirá la apertura automática de la llave maestra.

Felicitaciones a los chicos que respondieron a la pregunta en el enlace

Cuestiones relacionadas