Поделиться через


Восстановление главного ключа базы данных

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

В этом разделе

Перед началом

Ограничения

  • Когда главный ключ восстановлен, SQL Server дешифрует все ключи, зашифрованные текущим активным главным ключом, и затем шифрует эти ключи с помощью восстановленного главного ключа. Данную ресурсоемкую операцию следует планировать на то время, когда количество обращений к серверу минимальное. Если текущий главный ключ базы данных не открыт или не может быть открыт, или если какой-либо зашифрованный им ключ не может быть дешифрован, операция восстановления заканчивается неудачно.

  • Если во время расшифровки любого объекта произойдет ошибка, восстановление будет прервано. Чтобы пропускать ошибки, можно использовать параметр FORCE, но это приведет к потере всех данных, которые не удается расшифровать.

  • Если главный ключ был зашифрован главным сервисным ключом, восстановленный главный ключ также будет зашифрован главным сервисным ключом.

  • Если в текущей базе данных нет главного ключа, RESTORE MASTER KEY создает главный ключ. Новый главный ключ не будет автоматически шифроваться главным сервисным ключом.

Безопасность

Разрешения

Требует разрешения CONTROL для базы данных.

В среде SQL Server Management Studio с помощью Transact-SQL

Восстановление главного ключа базы данных

  1. Сохраните резервную копию главного ключа базы данных с физического носителя данных резервных копий или из папки локальной файловой системы.

  2. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.

  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)