반응형
MySQL 설치하고 기본계정인 root 계정으로 접속했다면, 다음 단계로 사용자 계정을 생성할 때 필요한 옵션에 관한 설명입니다.
MySQL 사용자 계정 옵션 설명
- MySQL 사용자 계정 중 슈퍼 사용자인 root 계정은 일반적으로 사용하지 않습니다.
- MySQL root 계정의 경우, 관리자 계정이기 때문에, DB에 대한 모든 권한을 가지고 있습니다.
- 하지만, 실제 서비스에 사용되는 DB는 DBA가 root 권한을 가지고 있습니다.
- DB를 이용하는 개발자 및 응용프로그램은 역할에 맞도록 권한을 부여받아 사용합니다.
- 결론적으로 사용자 계정 생성하기 전 옵션을 정확하게 숙지하고 있어야 역할에 맞게 계정을 생성할 수 있습니다.
MySQL 사용자 계정 옵션
사용자 계정을 생성하는 SQL입니다.
CREATE USER 'aurumguide'@'%'
IDENTIFIED WITH 'caching_sha2_passowrd' BY 'password'
REQUIRE NONE
PASSWORD EXPIRE INTERVAL 100 DAY
PASSWORD HISTORY DEFAULT
PASSWORD REUSE INTERVAL DEFAULT
PASSWORD REQUIRE CURRENT DEFAULT
ACCOUNT UNLOCK
;
IDENTIFIED WITH 옵션 설명.
- 사용자의 인증 방식과 비밀번호를 설정합니다.
- IDENTIFIED WITH 뒤에는 반드시 인증 방식을 명시합니다.
- MySQL 서버의 기본 인증 방식을 사용하고자 한다면 IDENTIFIED WITH BY 'password' 형식으로 입력합니다.
MySQL 서버 지원되는 플러그인 형태의 인증 방식 설명입니다.
I. Native Pluggable Authentication.
- 비밀번호에 대한 해시값을 저장해 두고, 클라이언트가 보낸 값과 해시값이 일치하는지 비교하여 인증하는 방식입니다.
II. Caching SHA-2 Pluggable Authentication.
- 조금 더 보완된 인증 방식, 암호화 해시값 생성을 위해 알고리즘을 사용합니다.
III. PAM Pluggable Authentication.
- Unix, Linux 패스워드 또는 LDAP 같은 외부 인증을 사용할 수 있게 해주는 인증 방식입니다.
V. LDAP Pluggable Authentication.
- 외부 인증을 사용할 수 있게 해주는 방식입니다.
- MySQL 5.7 버전은 Native Pluggable Authentication 기본 인증 방식을 지원합니다.
- MySQL 8.0 버전은 Caching SHA-2 Pluggable Authentication 기본 인증 방식을 지원합니다.
REQUIRE 옵션 설명.
- REQUIRE NONE 설정 시 비암호화 채널로 연결합니다.
- MySQL 서버에 접속할 때 암호화된 SSL/TLS 채널을 사용할지를 설정할 수 있습니다.
- REQUIRE 옵션을 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일 자로 설정할 때 사용합니다.
- ERROR 1820 (HY000):You must reset your password using ALTER USER statement before executing this statement.
- PASSWORD 만료 일자 초과하면 발생하는 오류 메시지입니다.
PASSWORD HISTROY 옵션 설명.
* 한번 사용했던 비밀번호를 재사용하지 못하게 설정할 수 있는 옵션입니다.
PASSOWRD HISTORY DEFAULT
- PASSOWRD HISTORY의 DEFAULT 값은 0으로 패스워드 재사용 제한 없습니다.
PASSWORD HISTORY n
- 입력한 비밀번호를 이력을 최근 n 개까지 저장합니다.
- 즉, password_history 시스템 변수에 저장된 개수만큼 비밀번호의 이력을 저장하고 저장된 이력의 비밀번호는 재사용할 수 없습니다.
- password_history 테이블에서 PASSWORD HISTORY 확인할 수 있습니다.
SELECT * FROM mysql.password_history;
PASSWORD REUSE INTERVAL 옵션 설명.
* 한번 사용했던 비밀번호의 재사용 금지 기간을 설정하는 옵션입니다.
PASSWORD REUSE INTERVAL DEFAULT
- 명시하지 않으면 password_reuse_interval 시스템 변수에 저장된 기간을 적용받습니다.
- 즉, 기본값이 0으로 설정하지 않으면 언제든지 재설정이 가능합니다.
PASSWORD REUSE INTERVAL n DAY
- n 일자 이후에 비밀번호를 재설정해서 사용할 수 있습니다.
PASSWORD REQUIRE 옵션 설명.
* 비밀번호가 만료되어 새로운 비밀번호로 변경할 때 현재 비밀번호를 체크할지, 체크하지 말지를 설정하는 옵션입니다.
* 별도로 명시되지 않으면 password_require_current 시스템 변수의 값으로 설정
PASSWORD REQUIRE CURRENT
- 비밀번호를 변경할 때 현재 비밀번호를 먼저 입력하도록 설정합니다.
PASSWORD REQUIRE OPTIONAL
- 비밀번호를 변경할 때 현재 비밀번호를 입력하지 않아도 되도록 설정합니다.
PASSWORD REQUIRE DEFAULT
- password_require_current 시스템 변수에 값으로 설정합니다.
- password_require_current 기본값은 OFF입니다.
ACCOUNT LOCK / UNLOCK 옵션 설명.
* 계정 생성 시 또는 ALTER USER 명령어를 통해 사용자 계정의 사용 유/무를 변경할 수 있는 옵션입니다.
ACCOUNT LOCK
- 계정을 사용하지 못하게 할 수 있는 옵션입니다.
ACCOUNT UNLOCK
- 잠긴 계정을 다시 사용 가능 상태로 변경할 수 있는 옵션입니다.
반응형