Estou simulando a situação em que faço um backup da instância A e o restauro na instância B . Eu segui o doc para Backup to Disk with Encryption . Como estou usando apenas meu desktop para simular todo o processo, após fazer o backup do banco de dados fiz um backup do certificado que foi utilizado da seguinte forma:
BACKUP CERTIFICATE MyTestDBBackupEncryptCert
TO FILE = N'C:\Databases\MyTestDBBackupEncryptCert.cert';
Então eu larguei o MyTestDBBackupEncryptCert
certificado e o banco de dados da minha instância para simular que agora é a instância B . Eu restaurei o certificado usando o comando do documento Criando um certificado a partir de um arquivo com uma pequena modificação onde comentei as linhas relacionadas às opções PRIVATE KEY
e DECRYPTION
já que o certificado foi criptografado pelo MASTER KEY
(bem, foi o que entendi no primeiro link):
CREATE CERTIFICATE MyTestDBBackupEncryptCert
FROM FILE = N'C:\Databases\MyTestDBBackupEncryptCert.cert'
--WITH PRIVATE KEY (FILE = 'c:\Shipping\Certs\Shipping11.pvk',
--DECRYPTION BY PASSWORD = 'sldkflk34et6gs%53#v00');
GO
O certificado foi criado, mas quando tento restaurar o banco de dados, recebo este erro:
Msg 15507, Level 16, State 30, Line 33
Uma chave exigida por esta operação parece estar corrompida.
Msg 3013, Level 16, State 1, Line 33
RESTORE DATABASE está terminando de forma anormal.
A documentação não diz como obter a chave privada necessária para restaurar corretamente o certificado. Como faço para obtê-lo do SQL Server?
A chave privada é usada como parte da
BACKUP CERTIFICATE
sintaxe. De acordo com os documentos , a sintaxe é:Como você descobriu, um "simples"
BACKUP CERTICIATE
sem uma chave privada não é suficiente para ser restaurado para uso na descriptografia. Para tornar seu backup de certificado útil para restaurar backups criptografados, você deve fazer backup do certificadoWITH PRIVATE KEY
.Uma vez que você sabe disso, é mais fácil lembrar, porque você precisa da chave para desbloquear a criptografia --- mas o fato de que o backup de certificado "simples" é possível sem nenhum aviso representa uma grande armadilha e também demonstra a importância de testar sua estratégia de restauração , principalmente quando chaves de criptografia estão envolvidas.