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


ALTER SYMMETRIC KEY (Transact-SQL)

Изменяет свойства симметричного ключа.

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

Синтаксис

ALTER SYMMETRIC KEY Key_name <alter_option>

<alter_option> ::=
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
   | 
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
   CERTIFICATE certificate_name
   |
   PASSWORD = 'password'
   |
   SYMMETRIC KEY Symmetric_Key_Name
   |
   ASYMMETRIC KEY Asym_Key_Name

Аргументы

  • Key_name
    Имя, под которым изменяемый симметричный ключ известен в базе данных.

  • ADD ENCRYPTION BY
    Добавляет шифрование при помощи указанного метода.

  • DROP ENCRYPTION BY
    Отменяет шифрование при помощи указанного метода. Все виды шифрования из симметричного ключа удалить нельзя.

  • CERTIFICATE Certificate_name
    Указывает сертификат, используемый для шифрования симметричного ключа. Этот сертификат уже должен существовать в базе данных.

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

  • SYMMETRIC KEY Symmetric_Key_Name
    Указывает симметричный ключ, используемый для шифрования изменяемого симметричного ключа. Симметричный ключ уже должен существовать в базе данных и быть открытым.

  • ASYMMETRIC KEY Asym_Key_Name
    Указывает асимметричный ключ, используемый для шифрования изменяемого симметричного ключа. Асимметричный ключ должен уже существовать в базе данных.

Замечания

ПредупреждениеВнимание!

Если шифрование симметричного ключа выполняется не с открытым ключом главного ключа базы данных, а с паролем, используется алгоритм шифрования TRIPLE_DES. Поэтому ключи, созданные с помощью сильных алгоритмов шифрования, таких как AES, защищены более слабым алгоритмом.

Для изменения шифрования симметричного ключа используйте предложения ADD ENCRYPTION и DROP ENCRYPTION. Невозможно, чтобы ключу не соответствовал никакой способ шифрования. Поэтому оптимальным способом изменения метода шифрования является добавление новой формы шифрования и затем удаление старой.

Для изменения владельца симметричного ключа выполните инструкцию ALTER AUTHORIZATION.

Разрешения

Требует разрешения ALTER на симметричный ключ. При добавлении шифрования по сертификату или асимметричному ключу необходимо разрешение VIEW DEFINITION на сертификат или асимметричный ключ. При удалении шифрования по сертификату или асимметричному ключу необходимо разрешение CONTROL на сертификат или асимметричный ключ.

Примеры

В следующем примере изменяется метод шифрования, используемый для защиты симметричного ключа. Шифрование симметричного ключа JanainaKey043 производится при помощи сертификата Shipping04 во время создания этого ключа. Так как ключ никогда не может храниться незашифрованным, в этом примере шифрование добавляется по паролю, а удаляется шифрование по сертификату.

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256 
    ENCRYPTION BY CERTIFICATE Shipping04;
-- Open the key. 
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04
    WITH PASSWORD = '<enterStrongPasswordHere>'; 
-- First, encrypt the key with a password.
ALTER SYMMETRIC KEY JanainaKey043 
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
-- Now remove encryption by the certificate.
ALTER SYMMETRIC KEY JanainaKey043 
    DROP ENCRYPTION BY CERTIFICATE Shipping04;
CLOSE SYMMETRIC KEY JanainaKey043;