콘텐츠로 이동

12-04-Real-MySQL

Real MySQL 8.0 1 - 사용자 및 권한


  • MySQL 사용자는 접속 지점(호스트, 도메인, IP 주소)도 계정의 일부
  • 시스템 계정: SYSTEM_USER 권한
    • 계정 관리(생성, 삭제, 권한 부여/제거)
    • 다른 세션(Connection), 그 세션에서 실행중인 쿼리 강제 종료
    • 스토어드 프로그램 생성시 DEFINER를 타 사용자로 설정

DEFINER: 프로시저나 함수가 그것을 생성한 사용자의 권한으로 실행됨

계정 생성

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 DEFAULT
       PASSWORD REQUIRE CURRENT DEFAULT;
  • IDENTIFIED WITH: 사용자의 인증 방식과 비밀번호 설정
    • Native Pluggable Authentication - 비밀번호 해시 값
    • Caching SHA-2 Pluggable Authentication - 암호화 해시 알고리즘 적용 SSL/TLS/RSA 키페어
    • PAM Pluggable Authentication - 엔터프라이즈 에디션
    • LDAP Pluggable Authentication - 엔터프라이즈 에디션
  • REQUIRE: MySQL 서버 접속시 암호화된 SSL/TLS 채널 사용 여부 설정
  • PASSWORD EXPIRE: 비밀번호의 유효 기간 설정
    • NEVER: 만료 기간 없음
    • DEFAULT: default_password_lifetime 시스템 변수에 저장된 기간으로 설정
    • INTERVAL n DAY: 오늘부터 n일자로 설정
  • PASSWORD HISTORY: 비밀번호 재사용 설정
    • DEFAULT: password_history 시스템 변수에 저장된 개수만큼 저장, 재사용 금지 x
    • n: 최근 n개 저장, 재사용 x
  • PASSWORD REUSE INTERVAL: 비밀번호 재사용 금지 기간 설정(password_reuse_interval 변수)
  • PASSWORD REQUIRE: 새로운 비밀번호로 변경할 때 현재 비밀번호 필요 여부
  • ACCOUNT LOCK/UNLOCK: 개정 생성 시 또는 ALTER USER 명령어로 변경할 때 계정 잠금 여부

Dual Password

하나의 계정에 대해 2개의 비밀번호(Primary, Secondary)를 동시에 설정할 수 있는 기능

  • 새로운 비밀번호로 변경을 할 때 서비스를 멈추지 않고 순차적으로 변경 가능