프로그래밍 이야기/MYSQL,MariaDB

MySQL 계정관리

글쓰는 개발자 김뉴네 2023. 8. 13. 20:51
728x90
반응형

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 삭제

 

728x90
반응형