ALTER MASTER KEY (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Синтаксические обозначения в 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 главный ключ базы данных и все защищаемые им ключи создаются повторно. Ключи сначала расшифровываются с помощью старого главного ключа, а затем шифруются с помощью нового. Данная ресурсоемкая операция должна быть назначена на период низкой загрузки, за исключением случаев, когда главный ключ был скомпрометирован.

В SQL Server 2012 для защиты главного ключа службы и главного ключа базы данных используется алгоритм шифрования AES. AES — это новый алгоритм шифрования, отличный от алгоритма 3DES, используемого в более ранних версиях. После обновления экземпляра компонента Компонент Database Engine до SQL Server 2012 необходимо заново сформировать главный ключ службы и главный ключ базы данных, чтобы обновить главные ключи до алгоритма AES. Дополнительные сведения о повторном создании главного ключа службы см. в разделе ALTER SERVICE MASTER KEY (Transact-SQL).

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

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

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

Разрешения

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

Примеры

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

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

См. также

Справочник

CREATE MASTER KEY (Transact-SQL)

OPEN MASTER KEY (Transact-SQL)

CLOSE MASTER KEY (Transact-SQL)

BACKUP MASTER KEY (Transact-SQL)

RESTORE MASTER KEY (Transact-SQL)

DROP MASTER KEY (Transact-SQL)

CREATE DATABASE (SQL Server Transact-SQL)

Основные понятия

Иерархия средств шифрования

Присоединение и отсоединение базы данных (SQL Server)