Oracle 12c 데이터베이스 10 - 권한 설정, 역할 설정

💡 본 글은 ‘실습과 함께하는! 데이터베이스 Oracle 12c’ 강의 내용을 바탕으로 정리하였습니다.

접근권한(Access Controll) 설정

DCL(Data Control Language)

  • 권한 및 역할 설정하는 언어
  • 권한 부여(GRANT), 회수(REVOKE)로 나뉨

권한

  • 시스템 권한
  • 객체 권한

사용자 생성

  -- 사용자 생성
  CREATE USER 사용자이름 IDENTIFIED BY 비밀번호;

  -- DB에 접속할 수 있도록 권한 부여
  GRANT CREATE SESSION TO 사용자이름;

테이블 조회 권한

  -- 조회 권한 부여
  GRANT SELECT ON 테이블명 TO 사용자이름;

  -- 조회 권한 회수
  REVOKE SELECT ON 테이블명 FROM 사용자이름;

권한 목록 조회

  -- 권한을 부여한 DBA의 경우
  SELECT * FROM user_tab_privs_made;

  -- 권한을 받은 DBA의 경우
  SELECT * FROM user_tab_privs_recd;

역할 설정

역할(ROLE)

  • 개별 테이블에 대한 CRUD 권한을 사용자 별로 지정하면 경우의 수가 테이블 수 * 사용자 수의 조합이 생김
  • 이러한 문제점을 개선하기 위해서 롤(역할)을 정하고 역할 별 권한 설정 후 사용자에게 역할을 부여
  • 사용자가 여러 개의 롤을 가질 수 있음(관리자, 사용자)

역할 생성

(문법)

  CREATE ROLE 역할명;

역할 권한 설정

(문법)

  GRANT SELECT ON 테이블명 TO 역할명;
  GRANT SELECT, INSERT ON 테이블명 TO 역할명;
  GRANT UPDATE(컬럼명) ON 테이블명 TO 역할명;
  GRANT ALL ON 테이블명 TO 역할명;

사용자에게 역할 부여

(문법)

  GRANT 역할 TO 사용자명;

사용자에게 역할 회수

(문법)

  REVOKE ALL ON 주인사용자명.테이블명 FROM 사용자명;