Open jjy0918 opened 2 years ago
SYSTEM_USER
권한이 있을 경우 시스템 계정, 없을 경우 일반 계정으로 구분된다.시스템 계정
은 MySQL 서버 백그라운드로 실행되는 스레드와 무관하며, 데이터베이스 서버 관리자를 위한 계정이다.
일반 계정
은 응용 프로그램이나 개발자를 위한 계정이다.
'root'@'localhost'
외 3가지 계정이 기본적으로 존재하며, 이 계정들은 특수한 목적을 위해 존재한다.
'mysql.sys'@'localhost'
: MySQL 8.0부터 기본적으로 내장된 sys 스키마의 객체들의 DEFINER로 사용되는 계정'mysql.session'@'localhost'
: MySQL 플러그인이 서버로 접근할 때 사용되는 계정'mysql.infoschema'@'localhost'
: information_schema에 정의된 뷰의 DEFINER로 사용되는 계정GRANT
명령으로 권한의 부여와 동시에 계정 생성이 가능했다.CREATE USER
, 권한 부여는 GRANT
명령으로 구분된다.# 가장 많이 사용되는 옵션을 가진 CREATE USER 명령어
CREATE USER 'user'@'%'
INDENTIFIED 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 DEFAUT;
default_password_lifetime
에 명시된 값으로 설정한다.PASSWORD EXPIRE
: 계정 생성과 동시에 비밀번호 만료 처리PASSWORD EXPIRE NEVER
: 계정 비밀번호의 만료 기간 없음PASSWORD EXPIRE DEFAULT
: default_password_lifetime으로 유효 기간 설정PASSWORD EXPIRE INTERVAL n DAY
: 유효 기간을 오늘부터 n일자로 설정PASSWORD HISTORY DEFAULT
: password_history
에 저장된 개수 만큼 비밀번호의 이력을 저장.PASSWORD HISTORY n
: 비밀번호의 이력을 최근 n개 까지만 저장.password_reuse_interval
에 저장된 기간으로 설정된다.PASSWORD REUSE INTERVAL DEFAULT
: password_reuse_interval에 저장된 기간으로 설정.PASSWORD REUSE INTERVAL n DAY
: n일자 이후에 비밀번호를 재사용할 수 있게 설정validation_password
컴포넌트를 이용하면 된다.primary
와 secondary
로 구분되며, 최근 설정한 비밀번호가 primary가 된다.객체 권한
글로벌 권한
ALL
이나 ALL PRIVILEGES
는 글로벌과 객체 권한 두 가지 용도로 사용된다.
3.1 사용자 식별
'svc_id'@'127.0.0.1'
=> svc_id는 127.0.0.1 에서만 접속이 가능하다.%
문자를 호스트명에 입력하면 된다.'svc_id'@'%'
=> 모든 주소에서 접속 가능'svc_id'@'127.0.0.1'
,'svc_id'@'192.168.0.10'
=> 아이디는 같지만, 인증은 다르다.%
와 특정 IP 가 명시되어 있디면, 특정 IP로 접속할 경우 특정 IP가 입력된 인증으로 진행된다.