MySQL 8 암호 복잡성 설정

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

일반적으로 MySQL 8은 암호화 관련한 옵션이 기본적으로 복잡성을 만족하도록 설정되어있다.

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | OFF   |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | MEDIUM|
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

위의 설정에 의하면 암호는

  • 8글자 이상
  • 최소한 1개이상의 대문자/소문자
  • 최소한 1개 이상의 숫자
  • 최소한 1개 이상의 특수문자

조건을 만족해야 하도록 설정되어있다. 또한 validate_password_check_user_name 은 암호에 해당 계정의 이름이 들어갔는지 체크하는 옵션이다 ON으로 되어있는 경우 암호에 계정명이 들어갈 수 없다.

또한 validate_password.policy 설정은 아래와 같은 정책을 준수한다.

  • LOW 정책은 비밀번호 길이만 테스트합니다. 비밀번호는 8 자 이상이어야합니다. 이 길이를 변경하려면 validate_password.length을 수정하십시오
  • MEDIUM 정책은 암호에 적어도 1 개의 숫자, 1 개의 소문자, 1 개의 대문자 및 1 개의 영숫자가 아닌 문자를 포함해야한다는 조건을 추가합니다. 이 값을 변경하려면 validate_password.number_count, validate_password.mixed_case_count, validate_password.special_char_count 를 수정하십시오
  • STRONG 정책은 길이가 4 이상인 암호 하위 문자열이 사전 파일의 단어와 일치하지 않아야 한다는 조건을 추가합니다. 사전 파일을 지정하려면 validate_password.dictionary_file을 수정하십시오

참조링크 : https://dev.mysql.com/doc/refman/8.0/en/validate-password.html

정책 변경

정책을 실시간으로 변경하려면 아래와 같이 DDL문으로 바로 적용이 가능하다.

mysql> SET GLOBAL validate_password_policy=LOW;
mysql> SET GLOBAL validate_password_length=12;

위와같이 즉시 데이터베이스 정책을 변경할 수 있다. 하지만 이 방법은 임시로 적용되는 방법이며 데이터베이스를 재기동 하면 초기화 된다.
영구적으로 적용하기 위해서는 아래과 같이 my.cnf 파일을 수정하도록 한다.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

lower_case_table_names=1

## Password validation
validate_password.length=8
validate_password.mixed_case_count=0
validate_password.number_count=0
validate_password.policy=LOW
validate_password.special_char_count=0

# EOF
로그인하면 댓글을 남길 수 있습니다.
  • mysql_8_암호_복잡성_설정.txt
  • 마지막으로 수정됨: 2020/02/18 03:50
  • 저자 koov