我正在尝试通过执行以下步骤来实现TDE
在源服务器上:服务主密钥已经存在
在主数据库上创建主密钥
在主数据库上创建证书
在用户数据库上创建数据库加密密钥并在此数据库上启用TDE
具有私钥(.pvk)和密码的备份证书(.cer)
当我需要在灾难恢复/测试服务器上恢复启用TDE的数据库时
测试服务器:
从源服务器的备份创建证书
还原数据库
我发现我们也可以备份服务主密钥(SMK)和数据库主密钥(DMK)。
我的问题是:
为什么我们需要备份SMK和DMK?仅证书备份文件.cer和私钥文件.pvk和密码还不够?
我需要从源服务器使用相同的SMK和DMK来还原测试/ DR服务器上的数据库备份吗?
为什么在下面的文章中他们没有还原SMK和DMK?
在测试服务器上,如果SQL安装中已经存在服务主密钥。
如果我创建数据库主密钥(是否需要从源备份中还原)
那么接下来的步骤仅仅是从源服务器还原证书,然后还原数据库吗?
请阐明一下。
答案 0 :(得分:1)
简短的答案:您无需从源服务器备份DMK或SMK即可恢复数据库;该证书就足够了。
更长的答案是,SMK和DMK均旨在对encryption hierarchy中的内容进行加密。对于TDE,主数据库的DMK对TDE证书的私钥部分进行加密。主数据库的DMK由SMK加密。这样一来,SQL无需用户干预即可打开证书,这又使数据库 start 无需用户干预。只要您拥有包含公钥和私钥部分的证书备份,就可以将其还原到所需的任何服务器,并使用目标服务器的主数据库DMK加密私钥部分,并且您的密码应该是g2g。 >
一个特定于DMK和可用性组的警告是,如果您的用户数据库位于具有DMK的AG中,则您希望SMK在AG中的所有服务器上都相同。为了进行物理锁模拟,您要对DMK的私钥进行锁,并确保所有服务器都具有相同密钥的副本。如果您不这样做,那么当您进行故障转移时,新的主服务器的密钥将无法放入锁中,您将必须使用拥有的密钥(即密码)来打开它。然后重新键入锁(即alter master key add encryption by service master key
)。