Saltar al contenido

Cree una clave maestra en la base de datos o abra la clave maestra en la sesión antes de realizar esta operación

Solución:

Reparado.

Referenciado: https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/sql-server-and-database-encryption-keys-database-engine

Este párrafo lo delató:

La copia del DMK almacenada en el Maestro La base de datos del sistema se actualiza silenciosamente cada vez que se cambia el DMK. Sin embargo, este valor predeterminado se puede cambiar utilizando el ENCRIPTACIÓN DE GOTAS MEDIANTE LLAVE MAESTRA DE SERVICIO opción de la ALTERAR LA LLAVE MAESTRA declaración. Un DMK que no está encriptado por la clave maestra del servicio debe abrirse usando el ABRIR LLAVE MAESTRA declaración y una contraseña.

Ejecuté lo siguiente en mis nodos secundarios.

  1. Descartar certificado …
  2. Soltar llave maestra
  3. Crear clave maestra …
  4. Crear certificado desde archivo …

Llegó a la solución después de verificar esto.

--on primary, output: master 
select name from sys.databases where is_master_key_encrypted_by_server=1

--on secondary, output: nothing...
select name from sys.databases where is_master_key_encrypted_by_server=1

Así que pensé que si podía conseguir que la clave maestra fuera cifrada de forma predeterminada por la clave maestra del servicio, esto automatizaría el descifrado.

--on secondary
drop certificate [BackupCertWithPK]
drop master key

--Skipped restore master key from file.
--Instead, I ran create master key with password.
create master key encryption by password = 'MyTest!Mast3rP4ss';

--verify by open/close.
open master key decryption by password = 'MyTest!Mast3rP4ss';
close master key;

--proceed to restore/create cert from file.
create cerfiticate [BackupCertWithPK] 
from file="\FS1SqlBackupsSQL1Donot_delete_SQL1-Primary_BackupCertWithPK.cer" 
with private key (file="\FS1SqlBackupsSQL1Donot_delete_SQL1-Primary_BackupCertWithPK.key" , decryption by password = '[email protected]') ; 

Después de esto, ejecutó la selección anterior nuevamente.

--on secondary, output: master, now there was hope again!
select name from sys.databases where is_master_key_encrypted_by_server=1

Finalmente, volví a ejecutar mi trabajo de respaldo con las opciones configuradas para Verificar y Cifrar correctamente. Verifique que el paso no haya fallado ni se le solicite abrir / cerrar la llave maestra.

Lo siguiente simplemente funcionó según lo previsto sin necesidad de abrir / cerrar la llave maestra.

RESTORE VERIFYONLY FROM DISK = '\FS1SqlBackupsSQL01SystemDbsmsdb_backup_2017_09_22_171915_6346240.bak' WITH FILE = 1, NOUNLOAD, NOREWIND;

¡Wohooo! Misión cumplida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *