Open-Closed Principle

MYSQL 사용자 계정 추가 (비밀번호관리) 본문

Programming/MySQL

MYSQL 사용자 계정 추가 (비밀번호관리)

대박플머 2022. 6. 28. 23:42

1. MySQL 사용자 계정 추가 (인증플러그인)

2. MYSQL 사용자 계정 추가 (비밀번호관리/잠금)

기본 예

1
2
3
4
5
6
7
8
9
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 DEFUALT 
PASSWORD REQUIRE CURRENT DEFUALT;
 
 
cs

3. PASSWORD EXPIRE

비밀번호의 유효 기간을 서정하는 옵션이며, 별도로 명시하지 않으면 default_password_lifetime 시스템 변수에 저장된 기간으로 유효 기간이 설정된다. 개발자나 데이터베이스 관리자의 비밀번호는 유효 기간을 서정하는 것이 보안상 안전하지만 응용 프로그램 접속용 계정에 유효 기간을 설정하는 것은 위험할 수 있으니 주의하자. PASSWORD EXPIRE 절에 설정 가능한 옵션은 다음과 같다. 

  • PASSWORD EXPIRE : 계정 생성과 동시에 비밀번호의 만료 처리 
  • PASSWORD EXPIRE NAVER : 계정 비밀번호의 만료 기간 없음 
  • PASSWORD EXPIRE DEFAULT : default_password_lifetime 시스템 변수에 저장된 기간으로 비밀번호의 유효 기간을 설정
  • PASSWORD EXPIRE INTERVAL n DAY : 비밀번호의 유효 기간을 오늘 부터 n일자로 설정

4. PASSWORD HISTORY

한 번 사용했던 비밀번호를 재사용하지 못하게 설정하는 옵션인데, PASSWORD HISTORY 정에 설정 가능한 옵션은 다음과 같다.

  • PASSWORD HISTORY DEFAULT : password_history 시스템 변수에 저장된 개수만큼 비밀번호의 이력을 저장하며, 저장된 이력에 남아 있는 비밀번호는 재사용할 수 없다. 
  • PASSWORD HISTORY n : 비밀번호의 이력을 최근 n개까지만 저장하며, 저장된 이력에 남아 있는 비밀번호는 재사용할 수 없다. 

한 번 사용했던 비밀번호를 사용하지 못하게 하려면 이전에 사용했던 비밀번호를 MySQL 서버가 기억하고 있어야 하는데, 이를 위해 MySQL 서버는 mysql 유dml password_history 테이블을 사용한다. 

 

5. PASSWORD REUSE INTERVAL 

한 번 사용했던 비밀번호의 재사용 금지 기간을 설정하는 옵션이며, 별도로 명시하지 않으면 password_resue_interval 시스템 변수에 저장된 기간으로 설정된다. PASSWORD REUSE INTERVAL 절에 설정 가능한 옵션은 다음과 같다. 

  • PASSWORD REUSE INTERVAL DEFAULT : password_reuse_interval 변수에 저장된 기간으로 설정 
  • PASSWORD REUSE INTERVAL n DAY : n일자 이후에 비밀번호를 재사용할 수 있게 설정 

6. PASSWORD REQUIRE

비밀번호가 만료되어 새로운 비밀번호로 변경할 때 현재 비밀번호(변경하기 전 만료된 비밀번호)를 필요로 할지 말지를 결정하는 옵션이며, 별도로 명시되지 않으면 password_require_current 시스템 변수의 값으로 설정된다. PASSWORD REQUIRE 절에 사용 가능한 옵션은 다음과 같다. 

  • PASSWORD REQUIRE CURRENT : 비밀번호를 변경할 때 현재 비밀번호를 먼저 입력하도록 설정 
  • PASSWORD REQUIRE OPTIONAL : 비밀번호를 변경할 때 현재 비밀번호를 입력하지 않아도 되도록 설정 
  • PASSWORD REQUIRE DEFAULT : password_require_current 시스템 변수의 값으로 설정 

7. ACCOUNT LOCK / UNLOCK

계정 생성 시 또는 ALTER USER 명령을 사용해 계정 정보를 변경할 때 계정을 사용하지 못하게 잠글지 여부를 결정한다.

  • ACCOUNT LOCK : 계정을 사용하지 못하게 잠금
  • ACCOUNT UNLOCK : 잠긴 계정을 다시 사용 가능 상태로 잠금 해제