还原数据库主密钥

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

本主题内容

在您开始之前

局限性与限制

  • 还原主密钥后,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  
    

    注释

    密钥的文件路径和密钥的密码(如果存在)将不同于上面所示的内容。 请确保它们均符合您服务器和密钥的设置要求。

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