Восстановление главного ключа службы

В этом разделе описывается восстановление главного ключа службы в SQL Server 2014 с помощью Transact-SQL.

Предупреждение

Маловероятно, что когда-нибудь потребуется восстановление главного ключа службы, Но если все же придется это делать, эту операцию следует выполнять предельно внимательно. Дополнительные сведения см. в статье 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  
    

    Замечание

    Путь к файлу ключа и пароль ключа (если он существует) будет отличаться от вышеуказанного. Убедитесь, что оба этих параметра соответствуют настройке конкретного сервера и ключа.