使用现有加密数据恢复服务主密钥

时间:2014-04-07 15:24:24

标签: sql-server encryption

我最近使用Symmetric / Asymmetric键实现了数据库加密,并使用密码加密了数据库主密钥(DMK)。现在,如果我正确理解加密层次结构,则DMK密码将存储在主数据库中,并由服务主密钥(SMK)加密。我的目标是将数据库复制到另一台服务器,作为测试环境"。为此,我需要在目标服务器上恢复服务主密钥的副本,以便正确加密/解密数据。我只是想确保我正确地读取documentation有关RESTORE MASTER KEY命令的信息。当我恢复SMK时,目标服务器上的任何加密数据将首先由当前SMK解密,然后使用新SMK重新加密。假设没有其他数据库加密会对其产生负面影响,这是否安全?

1 个答案:

答案 0 :(得分:0)

查看CREATE DATABASE ENCRYPTION KEY的语法,数据库主密钥(DMK)由服务器级证书或服务器级非对称密钥加密。为了在另一台服务器上恢复该数据库,保护DMK的证书或非对称密钥需要存在于目标的主数据库中。一旦你有了,你应该好好去。

如果这是跨环境恢复(例如prod→dev),我喜欢使用源上不存在的加密器重新加密密钥。这是一个额外的保护,确保恢复以一种方式发生(即你不能用dev覆盖prod)。