본문 바로가기
MySQL

MySQL 명령어 정리 (2) DCL

by suhsein 2024. 11. 5.
728x90

사용자 생성 명령어

CREATE USER '사용자명'
IDENTIFIED BY '비밀번호'

생성 시 사용자명 비밀번호는 문자열 형식으로 ''로 감싸져 있어야 함.

권한 부여

DBA 권한

GRANT ALL PRIVILEGES
ON *.*
TO 사용자명
WITH GRANT OPTION;

ON은 적용 범위. *.*는 모든 DB의 모든 테이블을 의미한다.
GRANT ALL PRIVILEGES -> 모든 권한을 부여하게 됨.

WITH GRANT OPTION 을 주게 되면, 해당 사용자는 다른 사용자에게 권한을 부여할 수 있는 자격을 가지게 됨.

오라클에는 WITH ADMIN OPTION 또한 존재하지만, MySQL에는 WITH GRANT OPTION만 존재한다.

  • WITH ADMIN OPTION - 권한 회수 시 연쇄적인 회수가 발생하지 않음.
  • WITH GRANT OPTION - 권한 회수 시 연쇄적인 회수가 발생.

ex) WITH GRANT OPTION을 가진 사용자 A가 WITH GRANT OPTION을 가진 사용자 B에게 권한 X를 부여. 그리고 B가 다시 C에게 권한 X를 부여.
만약 A가 B로부터 권한 X를 회수한다면, 연쇄적으로 C에게 부여된 권한 X도 회수됨.

https://velog.io/@suhsein/DB-VIEW-DCL

특정 권한만 부여

GRANT SELECT
ON *.*
TO 사용자명;

이 경우에는 모든 범위에 SELECT 권한만 부여하게 된다.

권한 종류

객체 권한

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • EXECUTE
  • SHOW VIEW

DDL 권한

  • CREATE
  • ALTER
  • REFERENCES
  • INDEX
  • CREATE VIEW
  • CREATE ROUTINE
    ROUTINE 은 프로시저를 의미한다.
  • ALTER ROUTINE
  • EVENT
  • DROP
  • TRIGGER

기타 권한

  • GRANT OPTION
    다른 사용자에게 권한을 부여할 수 있는 권한을 가지게 됨
  • CREATE TEMPORARY TABLES
  • LOCK TABLES
728x90