备份数据库主密钥
适用范围:SQL Server
本主题介绍了如何使用 Transact-SQL 在 SQL Server 中备份数据库主密钥。 数据库主密钥用于加密数据库里面的其他密钥和证书。 如果主密钥被删除或损坏,则 SQL Server 可能无法解密这些密钥,并且使用这些密钥加密的数据将实际上如同丢失。 出于这个原因,您应备份数据库主密钥,并将备份存储在另外一个安全的位置。
开始之前
限制和局限
主密钥必须为打开状态,因此在备份主密钥之前应对其进行解密。 如果主密钥使用服务主密钥进行加密,则不必显式打开。 但如果主密钥仅使用密码进行加密,则必须显式打开。
我们建议你在创建主密钥之后立即对其进行备份,并存储于另外一个安全的站点外位置。
安全性
权限
需要针对数据库的 CONTROL 权限。
将 SQL Server Management Studio 与 Transact-SQL 一起使用
备份数据库主密钥
在 SQL Server Management Studio 中,连接到包含需要备份的数据库主密钥的 SQL Server 实例。
选择将用于在备份介质上加密数据库主密钥的密码。 此密码应通过复杂性检查。
获得一个用于存储密钥备份副本的可移动备份介质。
确定将在其下创建密钥备份的 NTFS 目录。 这就是在下一步中指定的要创建文件的位置。 应使用高限制级访问控制列表 (ACL) 来保护目录。
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准菜单栏上,单击 “新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。
-- Creates a backup of the "AdventureWorks2022" master key. Because this master key is not encrypted by the service master key, a password must be specified when it is opened. USE AdventureWorks2022; GO OPEN MASTER KEY DECRYPTION BY PASSWORD = 'sfj5300osdVdgwdfkli7'; BACKUP MASTER KEY TO FILE = 'c:\temp\exportedmasterkey' ENCRYPTION BY PASSWORD = 'sd092735kjn$&adsg'; GO
注意
指向密钥和密钥的密码(如果有)的文件路径不同于以上所指示的路径。 请确保这两个路径都是针对您的服务器和密钥设置的。
将文件复制到备份介质上并验证该副本是否完好。
将备份存储在另外一个安全的位置。
另请参阅
有关详细信息,请参阅 BACKUP MASTER KEY (Transact-SQL) 和 RESTORE MASTER KEY (Transact-SQL)。