メインコンテンツまでスキップ
バージョン: 4.x

CREATE ENCRYPTKEY

説明

このステートメントはカスタムキーを作成します。

構文

CREATE ENCRYPTKEY <key_name> AS "<key_string>"

必須パラメータ

1. <key_name>

作成するキーの名前を指定します。データベース識別子を含めることができます。
例: db1.my_key

2. <key_string>

暗号化操作用のキーマテリアル文字列を定義します。

動作に関する注意事項:

  • <key_name>にデータベース識別子が含まれている場合、指定されたデータベースにキーが作成されます
  • <key_name>にデータベースが指定されていない場合、現在のセッションのデータベースが使用されます
  • 対象データベースに重複するキー名が存在する場合、キーの作成は失敗します

アクセス制御要件

このSQLコマンドを実行するユーザーは、最低限以下の権限を持つ必要があります:

権限オブジェクト注意事項
ADMIN_PRIVUser / Roleカスタムキーを作成するには、対象ユーザーまたはロールに対して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 |
    +------------------------------------------------- -------------------+