Estou usando um produto que é executado no SQLServer 2008. Compreensivelmente, a empresa fornecedora não oferece suporte ao SQLServer. Quando instalei o produto, especifiquei uma senha para criptografar o banco de dados. Gostaria de executar outra cópia do produto para teste em outro servidor. Eu restaurei o banco de dados em outro servidor e instalei o produto nesse outro servidor. Quando o instalei, forneci a mesma senha e, em seguida, restaurei um backup do servidor principal. No entanto, estou recebendo a mensagem de erro:
System.Data.SqlClient.SqlException: An error occurred during decryption.
do produto. Eu posso acessar as tabelas usando o SQLServer Management studio.
Eu tentei isso:
no primeiro servidor:
CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff'
BACKUP CERTIFICATE cert1 TO FILE = 'd:\backup\cert1.dat'
WITH PRIVATE KEY
(
ENCRYPTION BY PASSWORD = 'mypassword',
FILE = 'd:\backup\cert1_privatekey.dat'
)
no segundo servidor:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mypassword'
CREATE CERTIFICATE cert1 FROM FILE = 'd:\cert1.dat'
WITH PRIVATE KEY
(
FILE = 'd:\cert1_privatekey.dat',
DECRYPTION BY PASSWORD = 'mypassword'
)
Eu também tentei isso no segundo servidor:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
mas isso deu uma mensagem de erro sobre uma chave assimétrica.
Como posso restaurar o backup do primeiro servidor para o segundo servidor?
Atualizar:
Há uma chave assimétrica e simétrica no banco de dados também. Se eu abrir a chave simétrica usando a chave assimétrica, recebo o mesmo erro, então acho que é por isso que não está funcionando - de alguma forma as chaves não estão sendo transferidas de forma que possam ser usadas.
fonte