Создание резервной копии главного ключа базы данных

Область применения:SQL Server

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

Limitations

Перед резервным копированием нужно открыть и расшифровать мастер-ключ базы данных. Если главный ключ сервиса шифрует главный ключ базы данных, вам не нужно явно открывать его главный ключ. Однако, если пароль — единственный способ шифрования для мастер-ключа базы данных, его необходимо открыть явно.

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

Разрешения

Необходимо разрешение CONTROL на базу данных.

Резервная копия мастер-ключа базы данных

Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

  1. Подключитесь к экземпляру SQL Server, содержащему мастер-ключ базы данных, резервную копию которого вы хотите создать. Вы можете подключиться к экземпляру SQL Server с помощью любого знакомого клиентского средства SQL Server, например sqlcmd, SQL Server Management Studio (SSMS) или расширения MSSQL для Visual Studio Code.

  2. Выберите уникальный пароль для шифрования мастер-ключа базы данных на резервном носителе. Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.

  3. Купите съёмный носитель резервного копирования для хранения копии резервного ключа.

  4. Определите каталог NTFS, где вы создаёте резервную копию ключа. В этой папке вы создаёте файл на следующем этапе. Защитите каталог с помощью строго ограничительных списков контроля доступа (ACL).

  5. Пересмотрите и запустите следующий Transact-SQL сценарий.

    В этом примере:

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

    • Вы создаете резервную копию главного ключа базы данных для AdventureWorks2025 в C:\Backups\Keys\AdventureWorks2025_master_key. Измените эти настройки, чтобы они соответствовали вашей среде.

    Предостережение

    Пароль нужен для восстановления резервной копии базы данных. Убедитесь, что вы храните этот пароль безопасно и надёжно.

    USE AdventureWorks2025;
    GO
    
    OPEN MASTER KEY DECRYPTION BY PASSWORD = '<dmk-password>';
    
    BACKUP MASTER KEY TO FILE = 'C:\Backups\Keys\AdventureWorks2025_master_key'
        ENCRYPTION BY PASSWORD = '<password>';
    GO
    
  6. Скопируйте резервную копию файла на носитель резервного копирования и проверьте копию.

  7. Сохраните резервную копию в надежном месте вне системы.