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