본문 바로가기

리눅스

MySQL의 패스워드 정책을 확인하고 변경하는 방법

728x90

MySQL의 패스워드 정책을 확인하고 변경하는 방법

패스워드 정책 확인

  • MySQL에 로그인
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ahslxjf11wcd1!';
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ahslxjf11wcd1!';
[에러] ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  • 현재 패스워드 정책을 확인
    • 비밀번호 유효성 검사 플러그인 시스템 변수 확인(MEDIUM)
SHOW VARIABLES LIKE 'validate_password%';
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.01 sec)
  • 패스워드 정책
    • 0: 패스워드 검증 정책 비활성화
    • 1: 낮은 수준의 검증 (길이만 확인)
    • 2: 중간 수준의 검증 (길이, 숫자, 대문자/소문자 포함)
    • 3: 높은 수준의 검증 (길이, 숫자, 대문자/소문자, 특수 문자 포함)
    • 4: 최고 수준의 검증 (길이, 숫자, 대문자/소문자, 특수 문자, 사전에서 사용된 단어 검사)

패스워드 정책 변경

  • 비밀번호 유효성 검사 플러그인 시스템 변수 변경
SET GLOBAL validate_password_policy=LOW;
  • 비밀번호 유효성 검사 플러그인 시스템 변수 확인(LOW)
SHOW VARIABLES LIKE 'validate_password%';
  • 높은 수준의 검증 정책으로 변경하는 예시
SET GLOBAL validate_password.policy = 3;
728x90
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)
FLUSH PRIVILEGES;
  • 패스워드 변경
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ahslxjf11wcd1!';
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ahslxjf11wcd1!';
Query OK, 0 rows affected (0.00 sec)

MySQL의 패스워드 정책을 my.cnf 파일에서 LOW로 변경하는 방법

  • MySQL 서버를 정지합니다.
sudo systemctl stop mysql
  • my.cnf 환경 설정 파일 편집(validate_opassword_policy에서 LOW로 수정)
    • [mysqld] 섹션 내에서 다음 설정을 추가하여 패스워드 정책을 LOW로 설정합니다.
    • validate_password.policy = LOW
vim /etc/my.cnf
[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8

##password Policy
validate_password_policy=LOW
validate_password_length=4
  • MySQL 서버를 다시 시작합니다.
sudo systemctl start mysql

변경된 패스워드 정책이 적용되었습니다. 새로운 사용자를 생성하거나 기존 사용자의 패스워드를 변경할 때 LOW 정책이 적용됩니다.

 

주의: 패스워드 정책을 LOW로 설정하면 보안에 취약할 수 있습니다. 가능하면 보안을 강화하기 위해 더 강력한 정책을 고려하는 것이 좋습니다.

 

참고URL

- MySQL 패스워드 정책 확인, 변경하기 : https://scbyun.com/710

- dev.mysql.com : https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html

 

728x90