为什么需要备份数据库主密钥?

Dan*_*ars 7 sql-server-2008-r2 encryption

当我为数据库制作数据库主密钥时:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Some Long Password'
Run Code Online (Sandbox Code Playgroud)

Microsoft 的此页面建议我在异地备份:

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

我已经通过测试确认备份数据库时存储了主密钥。我已经在备份数据库,并且已经安全地存储了密码。那么为什么我还需要备份主密钥呢?

(顺便说一句,我已经在备份服务主密钥并在异地存储)。

小智 4

我主要在将数据库移动或复制到 SQL Server 的新实例时使用它们。在这种情况下,数据库中的 DMK 将使用新实例的服务主密钥重新加密,但由 DMK 加密的对象(在您的情况下为对称密钥)将不会相应更新。您需要使用 FORCE 选项从单独的备份恢复 DMK,以允许自动解密对象。

是的,郑重声明:密钥损坏的情况很少见,并且它们将通过与数据库中任何其他数据相同的机制(即 CHECKDB)进行验证。但是,我仍然会保留您使用的所有加密密钥的备份 - 主密钥、证书、对称密钥等。在所有这些情况下,如果您丢失了密钥,您将永远无法解密相关数据。没有必要在每次数据库备份时都备份密钥,但在创建或修改密钥时备份它们是一个很好的保险。