に最終更新
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 |
+---------------------------------------------------------------------+