我正在使用在SQLServer 2008上运行的产品。可以理解的是,提供该产品的公司不提供SQLServer支持。安装产品时,我指定了密码来加密数据库。我想运行该产品的另一个副本,以便在另一台服务器上进行测试。我已将数据库还原到另一台服务器,并将产品安装在另一台服务器上。安装后,我提供了相同的密码,然后从主服务器还原了备份。但是我收到错误消息:
System.Data.SqlClient.SqlException: An error occurred during decryption.
从产品。我可以使用SQLServer Management Studio访问表。
我已经试过了:
在第一台服务器上:
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'
)
在第二台服务器上:
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'
)
我也在第二台服务器上尝试过此操作:
alter MASTER KEY regenerate with enCRYPTION BY PASSWORD='password'
但这给出了有关非对称密钥的错误消息。
如何将备份从第一台服务器还原到第二台服务器?
更新:
数据库中也有一个非对称和对称密钥。如果我使用非对称密钥打开对称密钥,则会遇到相同的错误,因此我认为这就是它不起作用的原因-某种程度上,密钥没有以可以使用的方式进行传输。