Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этой статье описывается, как восстановить мастер-ключ базы данных в SQL Server с помощью Transact-SQL. Главный ключ базы данных шифрует другие ключи и сертификаты внутри базы данных. Если он удалён или повреждён, SQL Server может не смог расшифровать эти ключи, и данные, зашифрованные с ними, фактически теряются. Восстановить мастер-ключ базы данных из резервной копии, чтобы восстановить доступ к этим ключам.
Limitations
Когда вы восстанавливаете мастер-ключ базы данных, SQL Server расшифровывает все ключи, зашифрованные текущим мастер-ключом базы данных, а затем шифрует их восстановленным мастер-ключом базы данных. Запланируйте эту ресурсоёмкую операцию в период низкого спроса. Если текущий мастер-ключ базы данных не открыт или нельзя открыть, или если какой-либо ключ, зашифрованный им, не поддаётся расшифровке, операция восстановления проваливается.
Если какое-либо из расшифровок не удаётся, восстановление проваливается. Можно использовать FORCE опцию игнорирования ошибок, но эта опция приводит к потере любых данных, которые нельзя расшифровать.
Если сервисный мастер-ключ шифрует главный ключ базы данных, он также шифрует восстановленный мастер-ключ базы данных.
Если в текущей базе данных отсутствует мастер-ключ базы данных, RESTORE MASTER KEY создаёт главный ключ базы данных. Сервисный мастер-ключ не шифрует автоматически новый мастер-ключ базы данных.
Разрешения
Необходимо разрешение CONTROL на базу данных.
Восстановить мастер-ключ базы данных
Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.
Сохраните резервную копию главного ключа базы данных с физического носителя данных резервных копий или из папки локальной файловой системы.
Подключитесь к экземпляру SQL Server, содержащему мастер-ключ базы данных, который вы хотите восстановить. Вы можете подключиться к экземпляру SQL Server с помощью любого знакомого клиентского средства SQL Server, например sqlcmd, SQL Server Management Studio (SSMS) или расширения MSSQL для Visual Studio Code.
Пересмотрите и запустите следующий Transact-SQL сценарий.
В этом примере:
Вы восстанавливаете мастер-ключ базы данных для
AdventureWorks2025изC:\Temp\AdventureWorks2025_master_key.Вы устанавливаете новый пароль
<new-password>для шифрования. Измените эти настройки, чтобы они соответствовали вашей среде.
Предостережение
Новый пароль понадобится для открытия мастер-ключа базы данных в будущем. Убедитесь, что вы храните этот пароль безопасно и надёжно.
USE AdventureWorks2025; GO RESTORE MASTER KEY FROM FILE = 'C:\Backups\Keys\AdventureWorks2025_master_key' DECRYPTION BY PASSWORD = '<password>' ENCRYPTION BY PASSWORD = '<new-password>'; GO