본문 바로가기

[DB]DataBase/[SQL]

[SQLD] DCL

728x90
반응형

DCL

DCL(Data Control Language)

  • 데이터 제어어로, 객체에 대한 권한을 부여(GRANT)하거나 회수(REVOKE)하는 기능
  • 테이블 소유자는 타계정에 테이블 조회 및 수정 권한 부여 및 회수 가능

 

권한

  • 일반적으로 본인(접속한 계정) 소유가 아닌 테이블은 원칙적으로 조회 불가
    • 권한 통제
  • 업무적으로 필요 시 테이블 소유자가 아닌 계정에 테이블 조회, 수정 권한 부여 가능

권한 종류

1) 오브젝트 권한

  • 테이블에 대한 권한 제어
    • 예) 특정 테이블에 대한 SELECT, INSERT, UPDATE, DELETE, MERGE 권한
  • 테이블 소유자는 타계정 소유 테이블에 대한 조회 및 수정 권한 부여 및 회수 가능

2) 시스템 권한

  • 시스템 권한을 제어
    • 예) 테이블 생성 권한, 인덱스 삭제 권한
  • 관리자 권한만 권한 부여 및 회수 가능

 

GRANT

  • 권한 부여 시 반드시 테이블 소유자나 관리자 계정(SYS, SYSTEM)으로 접속하여 권한을 부여해야 함
  • 동시에 여러 유저에 대한 권한 부여 가능
  • 동시에 여러 권한 부여 가능
  • 동시에 여러 객체 권한 부여 불가능

GRANT 문장

예시

오브젝트 권한 부여(PROFESSOR 소유자 실행)
시스템 권한 부여(관리자 권한 실행)

 

REVOKE

  • 동시에 여러 권한 회수 가능
  • 이미 회수된 권한을 재회수 불가
  • 동시에 여러 유저로부터 권한 회수 가능

REVOKE 문장

예시

오브젝트 권한 회수

 

ROLE(롤)

  • 권한의 묶음 (생성 가능한 객체)
  • SYSTEM 계정에서 ROLE 생성 가능
  • ROLE을 통해 부여한 권한은 직접 회수 불가능
    • ROLE을 통한 회수만 가능

ROLE 문장

예시

ROLE 생성
ROLE에 권한 생성
ROLE 부여
ROLE에 권한 삭제

 

권한 부여 옵션

중간 관리자의 권한

1) WITH GRANT OPTION

  • WITH GRANT OPTION으로 받은 오브젝트 권한을 다른 사용자에게 부여할 수 있음
  • 중간 관리자(WITH GRANT OPTIN으로 권한을 부여받은 자)가 부여한 권한은 중간 관리자만 회수 가능
  • 중간 관리자에게 부여된 권한 회수 시 제 3자에게 부여된 권한도 함께 회수됨

2) WITH ADMIN OPTION

  • WITH ADMIN OPTION을 통해 부여 받은 시스템 권한/롤 권한을 다른 사용자에게 부여할 수 있음
  • 중간 관리자를 거치지 않고 직접 회수 가능
  • 중간 관리자 권한 회수 시 제 3자에게 부여된 권한도 함께 회수안되고 남아 있음

권한 부여 옵션 예시

 

반응형

'[DB]DataBase > [SQL]' 카테고리의 다른 글

[SQLD] DDL  (0) 2024.05.22
[SQLD] TCL  (0) 2024.05.21
[SQLD] DML  (0) 2024.05.21
[SQLD] 정규 표현식  (0) 2024.05.20
[SQLD] PIVOT 절과 UNPIVOT 절  (0) 2024.05.20