了解SQL Server透明数据加密(TDE)主密钥

时间:2019-04-29 15:45:43

标签: sql-server encryption

我对Microsoft SQL Server(在我的情况下为SQL Server 2016)中TDE的特定区域缺乏了解。具体来说,在另一台服务器上还原加密数据库需要哪些证书/密钥。

Microsoft Docs突出显示从服务主密钥,数据库主密钥,证书和数据库加密密钥开始的加密层次结构。它强调了创建证书备份以防止数据丢失的必要性。它并没有真正提到在层次结构中证书之上备份任何内容。

但是,Redgate article描述了除了证书之外还备份服务主密钥和数据库主密钥。

实际上,我能够仅使用保存的证书/私钥在另一台服务器上还原加密的数据库。那么,我还缺少什么呢?如果证书受不可用的主密钥保护,它将如何工作?加密的一部分是“仅内部的”吗?如果是这样,在任何情况下我都需要从备份中还原服务主密钥或数据库主密钥吗?我想保留这些备份无论如何都不会受到伤害?

非常感谢

1 个答案:

答案 0 :(得分:2)

我已经成功地将TDE加密的数据库还原到仅具有用于TDE的证书的服务器上。换句话说,目标服务器都不匹配主数据库上的匹配数据库主密钥(DMK),也不匹配服务主密钥(SMK)。只要使用目标服务器上的SMK对主数据库的DMK进行了加密,并且将TDE证书的私钥加载到了主数据库中并使用该DMK进行了加密,那么您应该会很好。

但是!对于这样的事情,您不应该接受我(互联网上的一个随机人)这个词。这从根本上影响您还原数据库的能力。恢复能力是DBA的Job One™,您应该尝试一下并让自己相信,我所说的不仅是正确的,而且可以做到。

此外,作为还原计划的一部分,请将该证书(连同其私钥一起)备份到断开连接的媒体上,然后将其放置在安全的地方(我希望将其交给法律部门)。 / p>