최종 수정: 에
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 |
+---------------------------------------------------------------------+