MySQL 계정

(2019-07-09)

MySQL 권한

1. MySQL 계정 (Account)

  ㅇ 사용자 계정의 구성/포멧 : 사용자명@호스트
     - 사용자명, 호스트(클라이언트호스트명,IP주소)가 하나의 세트(사용자명@호스트)로 구성됨
     - 한편, 사용자명에 빈 칸 ``은 임의 명칭, 호스트명에 `%`은 임의 호스트 주소 가능

  ㅇ 특정 사용자 계정(이름,암호 등)의 `생성`,`제거`,`이름변경`
     - CREATE USER '사용자명'@localhost IDENTIFIED BY '암호키';
        . mysql.user 테이블에 한 행(row)을 추가하게 됨
     - DROP USER : 해당 사용자 계정 제거
     - RENAME USER 기존사용자명 TO 신사용자명 : 사용자 계정 이름 변경

  ㅇ 비밀번호 설정이 가능한 명령문들
     - CREATE USER '사용자명'@localhost IDENTIFIED BY '암호키';
     - SET PASSWORD FOR `계정명`@`호스트명` = PASSWORD(`암호키`);
     - GRANT


2. MySQL 권한 (Privilege)

  ㅇ 권한의 `부여`,`제거`,`명시적 적용`,`보기`
      - GRANT => 권한 부여
      - REVOKE => 권한 제거
      - FLUSH PRIVILEGES => 권한 변경을 명시적으로 적용
      - SHOW GRANTS => 권한 정보 보기

  ※ GRANT 명령문 형식 : GRANT privileges ON what TO account
     - privileges : 권한 (select,update,delete,shutdown 등)
     - what : 권한레벨 (전체 db,테이블,스토어드프로그램 등)
     - account : 사용자계정

  ㅇ 특정 db를 생성하고, 해당 db에 대해 특정 사용자에게 모든 권한을 줌
     - CREATE DATABASE IF NOT EXISTS `db명` ;
     - GRANT ALL PRIVILEGES ON `db명`.* TO '사용자명'@localhost ;
        . ALL 또는 ALL PRIVILEGES : 모든 권한

  ㅇ 특정 사용자에게 특정 테이블에 대한 권한 부여,제거
     - GRANT SELECT,UPDATE ON db명.테이블명 TO '사용자명'@'localhost' ;
     - REVOKE SELECT,UPDATE ON db명.테이블명 FROM '사용자명'@'localhost' ; 

  ㅇ 특정 사용자에게 특정 function에 대한 실행 권한 부여
     - GRANT EXECUTE ON FUNCTION `db명`.`함수명` TO '사용자명'@'localhost' ;

  ㅇ 특정 사용자에게 특정 function,procedure에 대한 dump 권한(즉,select 조회) 부여 
     - GRANT SELECT ON mysql.proc TO '사용자명'@'localhost';

  ㅇ 특정 사용자에게 설정된 grant 권한 보기
     - SHOW GRANTS FOR '사용자명'@'localhost' ;


3. MySQL 권한 테이블 : mysql

  ㅇ user : MySQL 서버에 접속 가능한 사용자 및 전역 권한 정보 
  ㅇ db : MySQL 데이터베이스 권한
  ㅇ tables_priv : MySQL 테이블 권한
  ㅇ columns_priv : 칼럼 권한
  ㅇ procs_priv : MySQL 저장 프로그램 권한


[MySQL] 1. MySQL 2. 마리아 DB 3. MySQL 서버 4. 저장 루틴 5. MySQL 백업 6. MySQL 계정 7. MySQL 활용 (기타) 8. MySQL 함수 9. Prepare 문
[MySQL 변수,타입,문자셋] [MySQL 저장]

 
        최근수정     요약목록     참고문헌