sql >> Base de Datos >  >> RDS >> Sqlserver

Error de clave maestra abierta de SQL Server 2008 al cambiar el servidor físico

La clave maestra de la base de datos se cifra con la clave maestra del servidor, que es específica de la máquina donde está instalado SQL Server. Cuando mueve la base de datos a otro servidor, pierde la capacidad de descifrar y abrir automáticamente la clave maestra de la base de datos porque la clave del servidor local probablemente será diferente. Si no puede descifrar la clave maestra de la base de datos, no puede descifrar nada más que dependa de ella (certificados, claves simétricas, etc.).

Básicamente, desea volver a cifrar la clave maestra de la base de datos con la nueva clave del servidor, lo que se puede hacer con este script (usando privilegios de administrador):

-- Reset database master key for server (if database was restored from backups on another server)
OPEN MASTER KEY DECRYPTION BY PASSWORD = '---your database master key password---'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
GO

Tenga en cuenta que cuando crea una clave maestra de base de datos, también debe proporcionar siempre una contraseña para que pueda abrir la clave usando la contraseña en el escenario en el que no se puede usar la clave maestra de servicio. ¡Ojalá tenga esa contraseña almacenada en algún lugar!

Como alternativa, puede restaurar una copia de seguridad de la clave maestra de la base de datos, pero necesita una que se haya creado para el servidor de destino, no para el servidor de origen.

Si no tiene una copia de seguridad ni una contraseña, no estoy seguro de que pueda recuperar los datos cifrados en el nuevo servidor, ya que tendrá que soltar y volver a crear la clave maestra de la base de datos con una nueva contraseña. que eliminará cualquier clave y datos dependientes.