还原数据库主密钥

适用于:yesSQL Server (支持的所有)

本主题说明如何使用 Transact-SQL Server 还原数据库中的数据库主SQL。

开始之前

限制和局限

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

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

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

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

安全性

权限

要求对数据库具有 CONTROL 权限。

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

还原数据库主密钥

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

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

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

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

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

    注意

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

另请参阅