我已备份加密的数据库(对称密钥/证书)并在不同的服务器上恢复它。
不幸的是我们遇到了解密问题...希望有人可以提供帮助。
在恢复的数据库中,我可以看到SSMS中的对称密钥和证书,但是当我尝试使用证书打开密钥(证书CertB的开放对称密钥KeyA解密)时,我得到以下非常描述性的错误:
消息15466,级别16,状态1,行1解密期间发生错误。
有任何想法吗?
提前致谢。
“当您还原使用加密功能的数据库时,只需要注意一件事 - 如果数据库主密钥(DbMK)需要服务主密钥(SMK)加密,则需要重新生成此加密。在创建DbMK时默认进行此加密,但如果您希望更严格地控制对加密数据的访问,则可能会有意删除。无论如何,如果您对DbMK进行了此类SMK加密,则重新生成它的步骤是下列:
通过密码打开主密钥解密='密码'更改主密钥通过服务主密钥关闭主密钥加密
就是这样 - 数据库加密功能现在应该像备份时一样工作。另请注意,如果您在进行备份的服务器上或其他位置还原数据库,则无关紧要。唯一重要的是这个程序是你知道一个保护DbMK的密码“
主密钥由源服务器上的服务主密钥解密,我们在目标上使用密码解密主密钥。我将主密钥更改为由服务主密钥解密,现在它正在工作。
您可能遇到的问题是服务器的数据库主密钥不同。根据我的理解,其他密钥基于此,并且在尝试解密数据时可能会导致问题。查看encryption hierarchy以获取有关数据加密步骤的说明。
我希望这个答案有所帮助,而且不会太偏离轨道。 :)
该链接对我有用,请按照2个链接进行备份/恢复
您可以使用UNC从目标服务器执行还原,而不必复制该文件。