ALTER MASTER KEY (Transact-SQL)

Изменяет свойства главного ключа базы данных.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    | 
    DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }

Аргументы

  • PASSWORD = 'password'
    Указывает пароль, при помощи которого шифруется или расшифровывается главный ключ базы данных. password должен соответствовать требованиям политики паролей Windows компьютера, на котором выполняется экземпляр SQL Server.

Замечания

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

Если используется аргумент FORCE, повторное создание ключей продолжается даже в случае, если главный ключ недоступен или сервер не может расшифровать все зашифрованные закрытые ключи. Если главный ключ открыть невозможно, используется инструкция RESTORE MASTER KEY для восстановления главного ключа из резервной копии. Аргумент FORCE следует использовать только в случае, если главный ключ получить невозможно или, при неудачной попытке расшифровки Данные, зашифрованные только недоступным ключом, будут потеряны.

Фраза DROP ENCRYPTION BY SERVICE MASTER KEY позволяет отменить шифрование главного ключа базы данных с помощью главного ключа службы.

Фраза ADD ENCRYPTION BY SERVICE MASTER KEY приводит к шифрованию копии главного ключа с помощью главного ключа службы, которая затем сохраняется как в текущей базе данных, так и в базе данных master.

Разрешения

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

Примеры

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

USE AdventureWorks2008R2;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO