Depois de mover um banco de dados de um servidor para outro, começamos a ter um problema:
> Msg 15581, Level 16, State 7, Procedure xxxxx, Line 24 [Batch Start Line 2]
Please create a master key in the database or open the master key in the session before performing this operation.
Msg 15315, Level 16, State 1, Procedure xxxxx, Line 62 [Batch Start Line 2]
The key '<CustomKeyName>' is not open. Please open the key before using it.
O procedimento em questão tem:
OPEN SYMMETRIC KEY MySymKey
DECRYPTION BY CERTIFICATE MySymCert;
Posso verificar que depois de mover o banco de dados, posso ver a symmetric key
e a certificate
consultando sys.symmetric_keys
e sys.certificates
.
Nós, sim, não temos a chave mestra. Estou curioso para saber se esse processo funcionaria:
- No servidor antigo (no escopo do BD):
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'a_cool_pass';
backup do BD novamente
Restaurar o BD no novo servidor novamente (com substituição)
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'the_cool_Pass'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
essa seria uma solução adequada para essa situação?
OU posso simplesmente remover a symmetric_key e o cert e recriá-los?
edição: REGENERATING
a chave mestra passou no servidor antigo, backup/restauração no novo, OPEN MASTER KEY DECRYPTION BY PASSWORD =
tive o problema The key is not encrypted using the specified decryptor.
(o que eu achei estranho. Tentarei novamente amanhã.
(precisaria fazer uma restauração de backup do certificado?