メインコンテンツまでスキップ
に最終更新

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 |
    +---------------------------------------------------------------------+