사용자 식별
'svc_id'@'127.0.0.1'
'svc_id'@'%'
'svc_id'@'127.0.0.1'
계정이 해당)사용자 계정 관리
계정 생성
사용자의 인증방식과 비밀번호를 설정
MySQL의 기본 인증방식을 사용한다면 INDENTIFIED BY ‘password’
형식으로 WITH절 생략
MySQL이 제공하는 대표적인 인증방식
MySQL 5.7버전까지는 Native Authentication 인증 방식이 사용되었지만 MySQL 8.0버전 이후부터는 Caching SHA-2 Authentication 인증 방식이 기본적용
위 이유로 업그레이드를 하는 경우 인증방식을 기존방식으로 사용해야 하는 경우 생길 수 있음
SET GLOBAL default_authentication_plugin=”mysql_native_password”
REQUIRE
PASSWORD EXPIRE
PASSWORD HISTORY
PASSWORD REUSE INTERVAL
PASSWORD REQUIRE
ACCOUNT LOCK/UNLOCK
고수준 비밀번호 관리
MySQL서버는 유효기간이나 이력 관리를 통한 재사용 금지 기능, 비밀번호를 쉽게 유추할 수 있는 단어들이 사용되지 않게 관리
비밀번호 유효성 체크 규칙을 적용하려면 validate_password 컴포넌트를 이용하면 됨
validate_password 컴포넌트는 내장되어 있기 때문에 별도 경로를 지정하지 않고 설치 가능
INSTALL COMPONENT ‘file://component_validate_password’;
설치하면 컴포넌트가 제공하는 시스템 변수 확인 가능
SHOW GLOBAL VARIABLES LIKE ‘validate_password&’;
validate_password.policy(비밀번호 정책) 옵션
비밀번호의 길이는 validate_password.length 변수 참조
숫자, 대소문자, 특수문자는 validate_password.mixed_case_count, validate_password.number_count, validate_password.special_char_count를 참조
금칙어는 validate_password.dictionary_file 시스템 변수에 설정된 사전 파일에 명시된 단어를 포함하는지 확인
MySQL 5.7버전까지는 validate_password가 플러그인타입으로 제공됨
이중 비밀번호
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘old_password’(기존 비밀번호 변경)
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’ RETAIN CURRENT PASSWORD;
(이중 비밀번호 사용 쿼리)
ALTER USER ‘root’@’localhost’ DISCARD OLD PASSWORD; (Secondary 비밀번호 삭제 쿼리)
권한
역할(ROLE)
쿼리 실행 구조