还原数据库主密钥

适用范围:SQL Server

本主题介绍如何使用 Transact-SQL 在 SQL Server 中还原数据库主密钥。

开始之前

限制和局限

  • 还原主密钥之后, SQL Server 会对使用当前活动的主密钥加密的所有密钥进行解密,然后使用还原后的主密钥对这些密钥进行加密。 这种大量消耗资源的操作应当安排在资源需求较低的时段执行。 如果当前的数据库主密钥未打开或无法打开,或者无法对任何使用该主密钥加密的密钥进行解密,则还原操作将失败。

  • 如果有任意一种解密操作失败,则还原操作将会失败。 您可以使用 FORCE 选项忽略错误,但是该选项会使无法进行解密的数据丢失。

  • 如果主密钥通过服务主密钥进行加密,则还原后的主密钥也通过该服务主密钥进行加密。

  • 如果当前数据库中没有主密钥,则 RESTORE MASTER KEY 将创建一个主密钥。 新的主密钥不会自动使用服务主密钥进行加密。

安全性

权限

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

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

还原数据库主密钥

  1. 从物理备份介质或本地文件系统上的某个目录检索备份的数据库主密钥的副本。

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

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

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

    -- Restores the database master key of the AdventureWorks2022 database.  
    USE AdventureWorks2022;  
    GO  
    RESTORE MASTER KEY   
        FROM FILE = 'c:\backups\keys\AdventureWorks2022_master_key'   
        DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
        ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
    GO  
    

    注意

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

另请参阅