MySQL에 유저를 등록할 때 password를 간단하게 작성하려고 하면 현재 정책 요구사항에 만족하지 않는다는 오류 메시지를 보게 됩니다.
mysql> create user 'someone'@'%' identified by 'simplepw';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
비밀번호를 간단하게 작성하는 것은 보안상 좋지 못합니다. 하지만 복잡한 비밀번호를 사용하고 싶지 않은 경우가 종종 있습니다. 내부 네트워크에만 속해 있어서 보안상 문제가 될 일이 별로 없을 수도 있고요. 개발 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)
잘 바뀌었네요. 이제 다시 사용자를 추가해 보겠습니다.
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)