Estou apenas começando a experimentar a criptografia de backups, acho que agora entendo e tenho o processo funcionando, mas algo estranho está acontecendo com a restauração.
No servidor A (SQL 2014 Standard), criei uma nova chave mestra e certificado e produzi com sucesso um arquivo bak criptografado e também exportei os arquivos de chave e certificado.
No Servidor B (SQL 2014 Developer), restaure com sucesso a chave mestra e o certificado do Servidor A.
Eu sei que eles estão funcionando bem, pois posso restaurar o arquivo bak criptografado com sucesso para ambos os servidores usando a sintaxe:
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'xxx';
RESTORE DATABASE testDb FROM DISK = 'C:\testDb.bak' WITH STATS = 5;
CLOSE MASTER KEY;
Mas não é a mesma história ao usar a ferramenta Restaurar banco de dados no SSMS.
Funciona bem ao restaurar para o Servidor A.
Mas ao usar a interface do usuário para restaurar no Servidor B, ele apenas fornece uma mensagem básica de ' Nenhum conjunto de backup selecionado para ser restaurado '.
Por que seria isso?
UPDATE : Acabei de notar ao usar os comandos para restaurar o backup, só funcionará no Servidor B se eu abrir primeiro a chave mestra caso contrário dá a mensagem Please create a master key in the database or open the master key
.
No Server AI não precisa fazer isso, é como se a chave estivesse sempre aberta no Server A
Eu sugiro que você tente desmontar sua configuração e começar de novo. Você deve poder restaurar a partir da GUI do SSMS, desde que seus certificados estejam todos no lugar. Sem ter seus scripts de configuração, é difícil solucionar o que pode ter dado errado.
Primeiro, no Servidor A , você desejará criar uma chave mestra:
Em seguida, crie seu certificado para usar em backups:
E faça backup desse certificado para poder restaurá-lo no outro servidor:
E agora, faça seu backup criptografado (você pode usar a GUI, mas aqui está o T-SQL):
Agora, vamos virar o Servidor B e criar uma chave mestra (Observação: na verdade, não preciso fazer backup/restaurar a chave mestra do outro servidor):
E agora crie esse certificado a partir do backup:
Por fim, vá para a GUI Restaurar Banco de Dados e selecione o backup de banco de dados que criamos no Servidor A: E você verá que ele lê com sucesso o arquivo de backup e mostra o backup definido na grade inferior da tela Restaurar Banco de Dados:
Clique em OK e tudo será restaurado com sucesso. (Talvez seja necessário ir para a tela "Arquivos" para modificar o local dos arquivos de dados a serem restaurados.)