还原SQL Server数据库 - 主密钥未打开

问题描述:

我必须创建远程SQL Server数据库的本地副本。我是通过使用任务>从Management Studio备份来完成的。然后,我在本地恢复了备份,这似乎包含了所有内容 - 表,用户,对称密钥和证书。还原SQL Server数据库 - 主密钥未打开

当我试图执行一个选择需要我打开对称密钥和证书解密,我得到这个错误:

Please create a master key in the database or open the master key in the session before performing this operation. 

为什么我会被问这个,为什么不它会像在远程服务器上那样自动打开?

我试过改变主密钥,但没有原始密码,我不能做太多。

+0

嗯的球员,我希望这不是容易恢复主密钥没有密码,这就是它的所有的安全从何而来。我想这可能是使用公钥加密来保护您的主密钥,并将证书备份到安全的地方的教训。 – 2011-06-16 19:31:05

+1

@Petey也许我在这里错过了一些明显的东西;在原始机器上,您不需要打开密钥,只需运行存储过程即可。我的出口/进口有缺陷吗? – ashes999 2011-06-16 19:36:19

+0

解决此问题的最简单方法是备份数据库主密钥并为其分配密码以保护文件。然后使用恢复的数据库的密码恢复数据库主密钥。只要DMK也由生产系统上的SMK进行加密,这将在您不需要知道用于创建DMK的原始密码的情况下运行,除非通过密钥加密被删除,否则默认情况下它是默认密码。 – 2016-08-25 17:44:24

的问题是SMK已经改变(因为机器已经改变)。有一篇文章解释它here。只需输出并输入SMK - 方法复制到系统中的任何加密数据将不可读

MSDN文章:

您不能绕过加密。请参阅此link以获取来自Microsoft的官方文字。

+0

我不想绕过。我正在复制,现在我不能再对新机器上的数据进行加密了。我编辑了我的问题以使其更清楚。 – ashes999 2011-06-17 12:46:30

这里是迁移,包括加密的数据库特别的好文章:

http://www.sql-server-performance.com/2009/migrating-databases-checklist-part3/3/

但总之,你需要以移动它知道原来的密码。

您可以备份和恢复的关键(即复制你提到),但你需要访问远程服务器,创建备份能力,或备份的副本与原始密码:

http://msdn.microsoft.com/en-us/library/ff848768.aspx

本次论坛的对话也可能是为了增长见识证明是有用的:

http://www.sqlservercentral.com/Forums/Topic775644-146-1.aspx

+0

+1不错的链接,但不能解决我的问题。 – ashes999 2011-06-17 20:17:54

Same problem solved without data loss - if you have the password creating the master key

数据库主密钥由服务主密钥加密。它在使用主密钥时自动打开。

现在服务主密钥无法打开主密钥,并且SQL提示您“手动开启主密钥解密密码='密码'”手动或创建主密钥。

通过NEW SERVER的服务主密钥添加加密将再次允许自动打开主密钥。

荣誉属于在回答这一问题中的链接