Перейти к содержимому
Последнее обновление

CREATE ENCRYPTKEY

Описание​

Этот оператор создаёт пользовательский ключ.

Синтаксис​

CREATE ENCRYPTKEY <key_name> AS "<key_string>"

Обязательные параметры​

1. <key_name>

Указывает имя создаваемого ключа, которое может включать идентификатор базы данных.
Пример: db1.my_key

2. <key_string>

Задаёт строку ключевого материала для криптографических операций.

Особенности поведения:

  • Если <key_name> содержит идентификатор базы данных, ключ будет создан в указанной базе данных
  • Если база данных не указана в <key_name>, будет использована база данных текущего сеанса
  • Создать ключ не удастся, если в целевой базе данных уже существует ключ с таким именем

Требования к управлению доступом​

Пользователь, выполняющий эту команду SQL, должен иметь как минимум следующие привилегии:

ПривилегияОбъектПримечания
ADMIN_PRIVГлобальная областьДля создания ключей шифрования пользователь должен иметь привилегию ADMIN_PRIV

Пример​

  • Создание пользовательского ключа

    CREATE ENCRYPTKEY my_key AS "ABCD123456789";
  • Создание пользовательского ключа в базе данных testdb

    CREATE ENCRYPTKEY testdb.test_key AS "ABCD123456789";
  • Использование пользовательского ключа для шифрования данных

    подсказка

    При использовании пользовательских ключей перед именем ключа необходимо указать KEY/key и поставить после него пробел.

    SELECT HEX(AES_ENCRYPT("Doris is Great", KEY my_key));
    +------------------------------------------------+
    | hex(aes_encrypt('Doris is Great', key my_key)) |
    +------------------------------------------------+
    | D26DB38579D6A343350EDDC6F2AD47C6 |
    +------------------------------------------------+
  • Использование пользовательского ключа для расшифровки данных

    SELECT AES_DECRYPT(UNHEX('D26DB38579D6A343350EDDC6F2AD47C6'), KEY my_key);
    +---------------------------------------------------------------------+
    | aes_decrypt(unhex('D26DB38579D6A343350EDDC6F2AD47C6'), key my_key) |
    +---------------------------------------------------------------------+
    | Doris is Great |
    +---------------------------------------------------------------------+