migumi
[MySQL] 사용자-비밀번호 관리 본문
1. 고수준 비밀번호
validate_password 컴포넌트 :
- 앞에서 살펴본 유효기간이나 이력관리를 통한 재사용 금지 기능뿐만 아니라 MySQL 서버에서 글자의 조합을 강제하거나 금칙어를 설정하는 등의 유효성 체크 규칙을 적용할 수 있게 하는 컴포넌트
INSTALL COMPONENT 'file://component_validate_password';
컴포넌트가 설치되면 아래와 같이 컴포넌트에서 제공하는 시스템 변수를 확인할 수 있다.
(사실 MySQL 8.0 이상에서는 validate_password가 기본적으로 포함되어 있어, 사용자가 별도로 설치할 필요가 없다고 함)
SHOW GLOBAL VARIABLES LIKE 'validate_password%';
1-1. 시스템 변수
validate_password.policy : 비밀번호 정책
- LOW : 비밀번호 길이만 검증
- MEDIUM : 비밀번호 길이, 숫자, 대소문자, 특수문자의 배합 검증
- STRONG : MEDIUM 레벨 검증 + 금칙어 여부 확인
validate_password.length: 비밀번호의 최소 길이 설정
validate_password.mixed_case_count: 대문자와 소문자가 혼합되어야 하는 최소 개수 설정 (0이면 medium정책에서도 소문자만 있거나 대문자만 있어도 됨)
validate_password.number_count: 비밀번호에 포함되어야 하는 최소 숫자 개수 설정
validate_password.special_char_count: 비밀번호에 포함되어야 하는 최소 특수문자 개수 설정
validate_password.dictionary_file: 비밀번호 검증 시 사용할 사전 파일을 지정 / 해당 파일에 명시된 단어를 포함하는지 여부를 검증(금칙어)
1-2. 금칙어 설정
https://migudat.tistory.com/10 여기서 사전 파일 만들었고
MySQL에 사전 파일 경로 설정하고 정책 변경
SET GLOBAL validate_password.dictionary_file = '/var/lib/mysql/dictionary.txt';
SET GLOBAL validate_password.policy ='STRONG';
확인해보면 제대로 적용 되었음을 볼 수 있다.
2. 이중 비밀번호
이중 비밀번호 (Dual Password): 비밀번호 2개의 값을 동시에 사용, 2개의 비밀번호 중 하나만 일치하면 로그인 가능
프라이머리(Primary) : 최근에 설정된 비밀번호
세컨더리(Secondary) : 이전 비밀번호
1) 'root' 계정 비밀번호를 하기와 같이 변경
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysqlserver123!';
2) 첫번째 입력한 비밀번호( 'Mysqlserver123!' )를 유지한 채 새 비밀번호('new_password')를 프라이머리 비밀번호로 설정
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password' RETAIN CURRENT PASSWORD;
종료 후 다시 로그인 해보면 설정한 두 비밀번호로 모두 로그인 가능함을 볼 수 있다.
3) 세컨더리 비밀번호는 아래와 같은 명령어로 삭제할 수 있음
ALTER USER 'root'@'localhost' DISCARD OLD PASSWORD;
'MySQL' 카테고리의 다른 글
[MySQL] 사용자- 권한(Privilege)과 역할(Role) (0) | 2024.09.21 |
---|---|
[MySQL] 사용자 식별과 계정 관리 (0) | 2024.09.12 |
[MySQL] MySQL 서버 설정과 시스템 변수 (1) | 2024.09.11 |
[MySQL] MySQL 서버 업그레이드 (교체식 - Minor / Major) (3) | 2024.09.05 |
[MySQL] yum으로 MySQL 설치 (CentOS 9) (1) | 2024.09.04 |