본문으로 건너뛰기
최종 수정: 에

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