본문 바로가기

sqld

2-20) DCL

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

 

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

 

권한 종류

 

1. 오브젝트 권한

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

 

2. 시스템 권한

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

 

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

 

** 문법

 

 

예1) 오브젝트 권한 부여 (PROFESSOR 소유자 실행)

  • 한 번에 여러 객체에 대한 권한 부여 불가

 

예2) 시스템 권한 부여 (관리자 권한으로 실행)

  • ON 절 X
  • CREATE TABLE, DROP INDEX 등으로 표현

 

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

 

** 문법

 

 

예) 오브젝트 권한 회수

  • 이미 회수한 권한 재회수 시 에러

 

ROLE
  • 권한의 묶음 (생성 가능한 객체)
  • SYSTEM 계정에서 ROLE 생성 가능

 

** 문법

 

 

예) 롤 (ROLE)

 

롤 생성)

 

롤에 권한 담기)

  • 유저가 아닌 롤에 권한을 담아 롤을 부여할 수 있음

 

롤 부여)

  • 이제 HR 계정은 EMP, STUDENT, DEPT, DEPARTMENT 테이블에 대한 SELECT를 수행할 수 있음

 

롤에서 권한 빼기)

  • 권한 회수 후 HR 계정에서는 DEPARTMENT 테이블에 대해 SELECT 수행 불가
  • ROLE에서 회수된 권한은 즉시 반영!
  • 다시 ROLE을 부여할 필요 없음

 

롤을 통해 부여한 권한 직접 회수 - SCOTT에서 실행)

  • SCOTT 소유의 STUDENT 테이블이지만 ROLE을 통해 부여된 권한이라면 직접 회수 불가
  • ROLE을 통한 회수만 가능!

 

권한 부여 옵션 (중간관리자의 권한)

 

1. WITH GRANT OPTION - 오브젝트 권한

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

 

2. WITH ADMIN OPTION - 시스템 권한 / 롤 권한

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

 

예)

 

권한 부여)

 

오브젝트 권한 회수 시도)

  • 중간관리자를 통해 부여한 제 3 계정의 권한은 관리자가 직접 회수 불가
  • 중간관리자 (HDATALAB)는 회수 가능

  • 대신 중간관리자의 권한을 취소 → 회수 시 중간관리자가 부여했던 제 3자의 권한도 함께 회수됨

  • 제 3의 계정의 권한도 함께 회수되어 PACK 계정에서 SELECT 조회 불가

 

시스템 권한 회수 시도)

  • 제 3의 계정에 부여된 권한을 관리자가 직접 회수할 수 있음

  • 중간관리자의 시스템 권한을 회수하더라도 중간관리자가 제 3의 계정에 부여한 권한은 회수되지 않음

 

 

 

 

'sqld' 카테고리의 다른 글

2-19) DDL  (0) 2024.08.23
2-18) TCL  (0) 2024.08.23
2-17) DML  (0) 2024.08.23
2-16) 정규 표현식  (0) 2024.08.22
2-15) PIVOT과 UNPIVOT  (0) 2024.08.22