MySQL에 유저를 등록할 때 password를 간단하게 작성하려고 하면 현재 정책 요구사항에 만족하지 않는다는 오류 메시지를 보게 됩니다.

mysql> create user 'someone'@'%' identified by 'simplepw';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

https://blog.kakaocdn.net/dn/bEJd9Q/btqCX71VKwe/nd92mz7wZmh7KTUVBkgLLk/img.png

비밀번호를 간단하게 작성하는 것은 보안상 좋지 못합니다. 하지만 복잡한 비밀번호를 사용하고 싶지 않은 경우가 종종 있습니다. 내부 네트워크에만 속해 있어서 보안상 문제가 될 일이 별로 없을 수도 있고요. 개발 DB를 구축하기 때문에 복잡한 비밀번호가 필요 없을 수도 있습니다.

비밀번호 정책이 어떻게 설정되어 있는지 확인해 보겠습니다.

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)

validate_password_policy 가 MEDIUM으로 설정되어 있습니다. validate_password_policy는 LOW, MEDIMU, STRONG 3단계로 구성되어 있습니다.

LOW인 경우 Length 만 지켜 주면 됩니다. 아무튼 패스워드는 최소 8자 이상은 되어야 합니다.

MEDIUM인 경우 Length는 물론 숫자, 대문자, 소문자, 특수문자가 모두 포함된 비밀번호를 사용해야 합니다.

STRONG인 경우 dictionary file 이란 것을 등록해서 사용하게 되는데요. 이 파일에 포함된 단어는 비밀번호로 사용할 수 없게 됩니다.

아무튼 간단한 비밀번호를 사용하려면 validate_password_policy를 LOW로 낮춰주어야 합니다. 다음 쿼리로 낮춰 줄 수 있습니다.

mysql> set global validate_password.policy=LOW;
FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql을 재시작하면 다시 MEDIUM으로 바뀌겠지만(String으로 해도 바뀐다) 계정을 생성할 일은 흔치 않기 때문에 필요할 때만 설정해서 사용해주면 되겠습니다. validate_password_policy 가 LOW로 바뀌었는지 확인해 봅시다.

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             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

https://blog.kakaocdn.net/dn/bMwsB6/btqCYF5bRaG/MpeuXzkvPJbkYWj2KLk0KK/img.png

잘 바뀌었네요. 이제 다시 사용자를 추가해 보겠습니다.

mysql> create user 'someone'@'%' identified by 'simplepw';
Query OK, 0 rows affected (0.00 sec)

추가가 잘 되었네요. 삭제하고 싶다면 drop user 명령어를 이용합니다.

mysql> drop user 'someone'@'%';
Query OK, 0 rows affected (0.00 sec)