Estou iniciando um projeto para criptografar arquivos de banco de dados. Eu criei uma chave mestra e um certificado da seguinte maneira:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Master_K3y';
GO
CREATE CERTIFICATE MY_DB_CERT WITH SUBJECT = 'Some subject here';
GO
Tenho duas opções para fazer backup do certificado: com ou sem chave privada. Não tenho ideia de onde vem essa chave privada, pois não forneci uma. Talvez tenha sido gerado para mim ao criar o certificado?
De qualquer forma, minhas primeiras instruções de backup não forneceram uma cláusula de chave privada.
USE master;
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'Master_K3y';
GO
BACKUP MASTER KEY TO FILE = 'MASTER_KEY.bak'
ENCRYPTION BY PASSWORD = 'yeK_r3tsaM';
GO
BACKUP CERTIFICATE MY_DB_CERT TO FILE = 'MY_DB_CERT.bak';
GO
Eu estou querendo saber se isso é suficiente para restaurar tudo em um estado de trabalho, digamos, ao mudar para um novo servidor? Se não, qual é o caso de uso para fazer backup de um certificado sem uma (a?) chave privada?
O código acima fará backup apenas da parte da chave PÚBLICA do certificado. Isso, no entanto, por si só, é inútil.
A chave privada é a parte necessária para descriptografar o banco de dados - sem isso, o banco de dados não pode ser descriptografado e, portanto, não pode ser acessado.
Explicação do certificado de backup sqlity