MySQL 사용자 생성 쿼리
CREATE USER 'user'@'localhost'
IDENTIFIED WITH 'mysql_native_password' BY 'password'
REQUIRE NONE
PASSWORD EXPIRE INTERVAL 30 DAY
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL DEFAULT
PASSWORD REQUIRE CURRENT
ACCOUNT UNLOCK
1. 사용자 식별 및 생성
CREATE USER 'user'@'localhost' # '유저명'@'접속 지점'
- MySQL에서는 사용자 계정뿐 아니라 접속 지점도 계정 정보에 포함됩니다.
- 접속 지점에는 도메인, 호스트 명, IP 주소가 입력될 수 있습니다.
- 동일한 이름을 가진 계정이 있을 경우, 항상 계정 정보의 범위가 가장 작은 것에 대해 인증을 시도합니다.
2. 비밀번호 및 인증 방식
IDENTIFIED WITH 'mysql_native_password' BY 'password' # WITH '인증 방식' BY '비밀번호'
- Native Pluggable Authentication :
해시를 이용하여 서버의 값과 사용자의 비밀번호를 비교합니다.
- Caching SHA-2 Pluggable Authentication :
해시 알고리즘을 강화하여 보안은 뛰어난 대신, 1번에 비해 성능은 떨어집니다.
동일 값을 입력하더라도 내부 키에 의해 다른 결과 값이 출력됩니다.
- PAM Pluggable Authentication :
유닉스나 리눅스 패스워드 또는 LDAP 외부 인증을 사용하는 방식입니다.
MySQL 엔터프라이즈 에디션에서만 사용 가능합니다.
- LDAP Pluggable Authentication :
LDAP 외부 인증을 사용하는 방식입니다.
MySQL 엔터프라이즈 에디션에서만 사용 가능합니다.
3. 암호화 여부
REQUIRE NONE
- 암호화된 SSL/TLS 채널을 사용할지 여부를 결정합니다.
4. 비밀번호 유효 기간 설정
PASSWORD EXPIRE INTERVAL 30 DAY # 30일 주기로 비밀번호 만료
- (PASSWORD EXPIRE) : 계정 생성과 동시에 비밀번호가 만료됩니다.
- NEVER : 비밀번호 유효 기간을 설정하지 않습니다.
- DEFAULT : default_password_lifetime 시스템 변수에 저장된 값을 따릅니다.
- INTERVAL n DAY : n일을 주기로 비밀번호가 만료됩니다.
5. 비밀번호 재사용 금지 개수 설정
PASSWORD HISTORY 5 # 최근 사용된 비밀번호를 5개까지 저장하며, 저장된 비밀번호는 사용할 수 없습니다.
- DEFAULT : password_history 시스템 변수에 저장된 값을 따릅니다.
- n : 최근 사용된 비밀번호를 n개까지 저장하며, 저장된 비밀번호는 사용할 수 없습니다.
6. 비밀번호 재사용 금지 기간 설정
PASSWORD REUSE INTERVAL 30 DAY # 사용했던 비밀번호는 30일 후에 재사용이 가능합니다.
- INTERVAL DEFAULT : password_reuse_interval 시스템 변수에 저장된 값을 따릅니다.
- INTERVAL n DAY : 사용했던 비밀번호는 n일 후에 재사용이 가능합니다.
7. 비밀번호 변경 시, 현재 비밀번호 필요 여부 설정
PASSWORD REQUIRE CURRENT
- CURRENT : 현재 비밀번호를 입력하도록 설정합니다.
- OPTIONAL : 현재 비밀번호를 입력하지 않아도 되도록 설정합니다.
- DEFAULT : password_require_current 시스템 변수에 저장된 값을 따릅니다.
8. 계정 잠금 설정
ACCOUNT UNLOCK;
- LOCK : 계정을 사용하지 못 하게 잠급니다.
- UNLOCK : 계정을 사용 가능 상태로 만듭니다.