본문 바로가기

리눅스

MySQL 패스워드 정책 확인 및 변경하는 방법

반응형

MySQL 패스워드 정책 확인 및 변경하는 방법

MySQL의 패스워드 정책은 사용자 비밀번호의 복잡성과 유효 기간 등을 설정하는 정책을 말합니다. 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

MySQL 패스워드 정책 확인

MySQL 서버에 접속하여 현재 패스워드 정책을 확인할 수 있습니다. MySQL에 접속하기 위해 터미널 또는 콘솔에서 다음 명령을 사용합니다.

mysql -u root -p

위 명령을 실행하면 비밀번호를 입력하라는 메시지가 나타납니다. MySQL root 사용자의 패스워드를 입력하고 Enter 키를 누릅니다.

 

MySQL에 성공적으로 접속하면, 다음 쿼리를 실행하여 현재 패스워드 정책을 확인합니다.

 

  • 비밀번호 유효성 검사 플러그인 시스템 변수 확인(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)

이 쿼리는 validate_password로 시작하는 모든 MySQL 변수를 보여줍니다. 이 변수들은 패스워드 정책과 관련된 설정들을 나타냅니다.

MySQL 패스워드 정책 변경

MySQL 패스워드 정책을 변경하기 위해서는 validate_password 관련 변수들을 수정해야 합니다(비밀번호 유효성 검사 플러그인 시스템 변수 변경).

예를 들어, 패스워드의 최소 길이, 대문자 및 숫자 포함 여부, 특수 문자 포함 여부 등을 설정할 수 있습니다.

SET GLOBAL validate_password_policy=LOW;

아래는 패스워드 정책을 변경하는 방법의 예시입니다.

SET GLOBAL validate_password.policy=LOW; -- 패스워드 정책을 낮음으로 변경
SET GLOBAL validate_password.length=6; -- 패스워드 최소 길이를 6으로 변경
SET GLOBAL validate_password.number_count=0; -- 패스워드에 숫자가 0개 이상 포함되어야 함
SET GLOBAL validate_password.special_char_count=0; -- 패스워드에 특수 문자가 0개 이상 포함되어야 함

 

  • 비밀번호 유효성 검사 플러그인 시스템 변수 확인(LOW)
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             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
728x90
  • MySQL 패스워드 변경
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ahslxjf11wcd1!';
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY 'ahslxjf11wcd1!';
Query OK, 0 rows affected (0.00 sec)

위의 쿼리들은 패스워드 정책을 낮은 수준으로 변경하고, 최소 길이를 6으로 설정하며, 숫자 및 특수 문자를 필수로 사용하지 않도록 설정한 것입니다.

 

변경된 패스워드 정책은 MySQL 서버가 재시작될 때까지 유지됩니다. MySQL 서버를 재시작하여 변경된 정책을 적용할 수 있습니다.

sudo systemctl restart mysql

위의 명령을 사용하여 MySQL 서버를 재시작합니다.

 

MySQL 패스워드 정책을 변경하면 새로운 비밀번호를 생성할 때 적용됩니다. 기존 사용자의 비밀번호에는 영향을 주지 않습니다.

validate_password 모듈을 사용하여 패스워드 정책을 설정하는 방법

MySQL의 validate_password 모듈을 사용하여 패스워드 정책을 설정하려면 my.cnf 파일을 수정해야 합니다. validate_password 모듈은 MySQL 5.6.6 이상에서 사용할 수 있습니다.

 

1. my.cnf 파일 열기

  • my.cnf 파일을 편집기로 엽니다.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

 

2. validate_password 설정 추가

  • 패스워드 정책을 설정하기 위해 mysqld 섹션 내에 validate_password 설정을 추가합니다. 예를 들어, LOW로 설정하려면 다음과 같이 추가합니다.
[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8

##password Policy
validate_password_policy=LOW
validate_password_length=4

 

3. my.cnf 파일 저장 및 종료

  • validate_password.policy=LOW를 추가한 후, 파일을 저장하고 편집기를 종료합니다.

 

4. MySQL 재시작

  • 변경된 설정을 적용하기 위해 MySQL 서버를 재시작합니다.
sudo systemctl restart mysql

 

이제 MySQL 서버는 패스워드 정책을 LOW로 설정하게 됩니다. 새로운 사용자의 패스워드는 LOW 정책에 따라 생성되며, 기존 사용자의 패스워드에는 영향을 주지 않습니다. 패스워드 정책을 변경하면 새로운 비밀번호를 생성할 때 해당 정책이 적용됩니다.

 

참고URL

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

 

728x90
반응형