CREATE USER 'user'@'%'
IDENTIFIED WITH 'mysql_native_password' BY 'password'
REQUIRE NONE
PASSWORD EXPIRE INTERVAL 30 DAY
ACCOUNT UNLOCK
PASSWORD HISTORY DEFAULT
PASSWORD REUSE INTERVAL DEFAULT
PASSWORD REQUIRE CURRENT DEFAULT;
?
REQUIRE - 암호화된 SSL/TLS 채널을 사용할지 여부를 설정한다.
별도로 설정하지 않으면 비암호화 채널로 연결하게됨.
SSL로 설정하지 않더라도 Caching SHA-2 Authentication 인증 방식을 사용하면
암호화된 채널만으로 MySQL 서버에 접속 가능함.
PASSWORD EXPIRE
- 비밀번호의 유효기간을 설정하는 옵션으로 별도로 명시하지 않으면 default_password_lifetime 시스템 변수에 저장된 기간으로 유효기간 설정됨.
- PASSWORD EXPIRE : 계정 생성과 동시에 비밀번호의 만료처리
- PASSWORD EXPIRE NEVER : 계정 비밀번호의 만료기간 없음
- PASSWORD EXPIRE DEFAULT : default_password_lifetime 시스템 변수에 저장된 기간으로 비밀번호의 유효기간 설정
- PASSWORD EXPIRE INTERVAL n DAY : 비밀번호의 유효 기간을 오늘 부터 n일자로 설정
PASSWORD HISTORY
- 한 번 사용했던 비밀번호를 재사용하지 못하게 설정하는 옵션
- PASSWORD HISTORY DEFAULT : password_history 시스템 변수에 저장된 개수만큼 비밀번호의 이력을 저장하며 저장된 이력에 남아있는 비번은 재사용 못함
- PASSWORD HISTORY n: 비밀번호의 이력을 최근 n개까지만 저장하며 저장된 이력에 남아있는 비번은 재사용할 수 없다.
이전에 사용했던 비번을 기억하는 테이블은
Select * from mysql.password_history; 이다
PASSWORD REUSE INTERVAL
- 한 번 사용했던 비밀번호의 재사용 금지기간을 설정하느 옵션으로 별도로 명시하지 않을 경우
password_resue_interval 시스템 변수에 저장된 기간으로 설정된다.
- PASSWORD RESUE INTERVAL DEFAULT : paaword_resue_interval 변수에 저장된 기간으로 설정
- PASSWORD RESUE INTERVAL n DAY : n일자 이후에 비번을 재사용할 수 있게 설정
PASSWORD REQUIRE
- 비밀번호가 만료되어 새로운 비번을 변경할 때 현재 비밀번호를 필요로 할지 말지를 결정하는 옵션
별도로 명시되지 않으면 password_require_current 시스템 변수의 값으로 설정됨
PASSWORD REQUIRE CURRENT : 비밀번호를 변경할 때 현재 비밀번호를 먼저 입력하도록 설정
PASSWORD REQUIRE OPTIONAL : 비밀번호를 변경할 때 현재 비밀번호를 입력하지 않아도 되도록 설정
PASSWORD REQUIRE DEFAULT : password_require_current 시스템 변수의 값으로 설정
ACCOUNT LOCK / UNLOCK
- 계정 생성시 또는 ALTER USER 명령을 사용해 계정 정보를 변경할 때 계정을 사용하지 못하게 잠글지 여부 결정
ACCOUNT LOCK : 계정을 사용하지 못하게 잠금
ACCOUNT UNLOCK : 잠긴 계정을 다시 사용 가능 상태로 잠금 해제
MySQL 서버의 비밀번호는 유효기간이나 이력관리를 통한 재사용 금지 기능 이외에 비밀번호를 수비게 유추할 수 있는
단어들이 사용되지 않게 글자의 조합을 강제하거나 금칙어를 설정하는 기능을 가지고 있음
validate_password 컴포넌트 : 비밀번호의 유효성 체크 규칙 적용
비밀번호 정책 - 기본 MEDIUM
LOW : 비밀번호의 길이만 검증
MEDIUM : 비밀번호의 길이를 검증하며, 숫자,대소문자, 특수문자의 배합 검증
STRONG : MEDIUM레벨의 검증 + 금칙어 포함여부
validate_password.length : 해당변수에 설정된 숫자만큼 비밀번호의 길이를 체크하는 변수
validate_password.mixed_case_count / validate_password.number_count / validate_password.speical_char_count
: 숫자와 대소문자 특수문자 가 해당 변수에 설정된 글자수 이상을 포함하고 있는지 체크함
validate_password.dictionary_file : 금칙어 단어 체크
-> validate_password.policy 정책이 STRONG 일때만 작동함.
SET GLOBAL validate_password.dictionary_file ='prohibitive_word.data';
SET GLOBAL validate_password.policy='STRONG';
이중 비밀번호 : 프라이머리와 세컨더리로 구분됨
primary password : 가장 최근에 설정됨
secondary password : 이전에 설정됨
ALTER USER 'root'@'localhost' IDENTIFIED BY 'kimnew';
-- primary password 가 kimnew 이고 secondary password 는 빈값으로 셋팅
ALTER USER 'root'@'localhost' IDENTIFIED BY 'kimnew2' RETAIN CURRENT PASSWORD;
-- primary password가 kimnew2 이고 secondary password kimnew 가 됨
ALTER USER 'root'@'localhost' DISCARD OLD PASSWORD;
- secondary password 삭제
'프로그래밍 이야기 > MYSQL,MariaDB' 카테고리의 다른 글
MySQL - limit 해제하기 (0) | 2023.09.09 |
---|---|
MyWorkBench - 워크벤치 비밀번호 분실했을때 초기화 방법 (0) | 2023.09.09 |
mySql with(Nolock) 처리하기 (0) | 2023.09.08 |
데이터베이스정의 및 폭포수 모델, My-sql 데이터베이스모델링 툴 (0) | 2023.08.27 |