备份数据库主密钥

适用范围:SQL Server

本主题介绍了如何使用 Transact-SQL 在 SQL Server 中备份数据库主密钥。 数据库主密钥用于加密数据库里面的其他密钥和证书。 如果主密钥被删除或损坏,则 SQL Server 可能无法解密这些密钥,并且使用这些密钥加密的数据将实际上如同丢失。 出于这个原因,您应备份数据库主密钥,并将备份存储在另外一个安全的位置。

开始之前

限制和局限

  • 主密钥必须为打开状态,因此在备份主密钥之前应对其进行解密。 如果主密钥使用服务主密钥进行加密,则不必显式打开。 但如果主密钥仅使用密码进行加密,则必须显式打开。

  • 我们建议你在创建主密钥之后立即对其进行备份,并存储于另外一个安全的站点外位置。

安全性

权限

需要针对数据库的 CONTROL 权限。

将 SQL Server Management Studio 与 Transact-SQL 一起使用

备份数据库主密钥

  1. 在 SQL Server Management Studio 中,连接到包含需要备份的数据库主密钥的 SQL Server 实例。

  2. 选择将用于在备份介质上加密数据库主密钥的密码。 此密码应通过复杂性检查。

  3. 获得一个用于存储密钥备份副本的可移动备份介质。

  4. 确定将在其下创建密钥备份的 NTFS 目录。 这就是在下一步中指定的要创建文件的位置。 应使用高限制级访问控制列表 (ACL) 来保护目录。

  5. “对象资源管理器” 中,连接到 数据库引擎的实例。

  6. 在标准菜单栏上,单击 “新建查询”

  7. 将以下示例复制并粘贴到查询窗口中,然后单击“执行” 。

    -- 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  
    

    注意

    指向密钥和密钥的密码(如果有)的文件路径不同于以上所指示的路径。 请确保这两个路径都是针对您的服务器和密钥设置的。

  8. 将文件复制到备份介质上并验证该副本是否完好。

  9. 将备份存储在另外一个安全的位置。

另请参阅

有关详细信息,请参阅 BACKUP MASTER KEY (Transact-SQL)RESTORE MASTER KEY (Transact-SQL)