还原服务主密钥

适用于:SQL Server

本文介绍如何使用 Transact-SQL 在 SQL Server 中还原服务主密钥。

警告

您可能永远也不需要还原服务主密钥。 但如果进行此操作,应当格外谨慎。 有关详细信息,请参阅 Back Up the Service Master Key

开始之前

限制和局限

  • 当还原服务主密钥时, SQL Server 将对所有已使用当前服务主密钥加密的密钥和机密内容进行解密,然后使用从备份文件中加载的服务主密钥对这些密钥和机密内容进行加密。

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

  • 重新生成加密层次结构是一种消耗大量资源的操作。 将该操作安排在资源需求较低的时段进行。

注意

服务主密钥为 SQL Server 加密层次结构的根。 服务主密钥直接或间接地保护树中的所有其他密钥。 如果在强制的还原过程中不能对某个相关密钥进行解密,则由该密钥所保护的数据便会丢失。

安全性

权限

需要对服务器的 CONTROL SERVER 权限。

“使用 Transact-SQL”

还原服务主密钥

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

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

  3. 在标准栏上,选择“新建查询” 。

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

    -- Restores the service master key from a backup file.  
    RESTORE SERVICE MASTER KEY   
        FROM FILE = 'c:\temp_backups\keys\service_master_key'   
        DECRYPTION BY PASSWORD = '3dH85Hhk003GHk2597gheij4';  
    GO  
    

    注意

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

另请参阅