DB/Oracle

Oracle - DCL

먹보 개발자 2024. 11. 4. 17:02

Database Security

 

※ 권한과 역할

1.  Privilege (권한)

  • Privilege는 특정 SQL 명령어를 수행하거나 특정 객체에 접근 할 수 있는 허가이다.
  • 시스템 권한(System Privileges): 데이터베이스나 시스템 전체에 대한 권한이다.
    ex) 테이블 생성, 사용자의 역할 관리.
  • 객체 권한(Object Privileges): 특정 테이블, 뷰, 시퀀스 등 특정 객체에 대한 접근 권한이다.
    ex) SELECT, INSERT, DELETE 권한.

2.  Role (역할)

  • Role은 여러 권한들을 묶어서 관리하는 개념으로, 관리자가 사용자에게 여러 권한을 한번에 부여할 수 있게 한다.
  • 예를 들어, 여러 사용자가 동일한 권한을 가져야 할 경우 각자 개별적으로 권한을 주는 대신 Role로 묶어서 한 번에 할당할 수 있다.

1-1 System Privileges (시스템 권한)

  • 데이터 베이스 전체를 관리할 수 있는 권한으로, 데이터베이스 관리자(DBA)가 부여한다.
GRANT CREATE TABLE TO 사용자; --사용자 권한 부여
REVOKE CREATE TABLE FROM 사용자; --사용자 권한 해제
  • WITH ADMIN OPTION: 이 옵션을 사용하면 해당 권한을 받은 사용자가 다른 사용자에게도 권한을 부여할 수 있다.

1-2 Object Privileges (객체 권한)

  • 특정 객체(TABLE, VIEW, SEQUENCE 등)에 접근할 수 있는 권한을 의미한다.
  • 예를 들어, 사용자가 특정 테이블의 데이터를 읽거나 수정할 수 있는 권한을 부여할 수 있다.
GRANT SELECT, INSERT ON 테이블명 TO 사용자;
REVOKE SELECT ON 테이블명 FROM 사용자;
  • WITH GRANT OPTION: 권한을 받은 사용자가 다른 사용자에게도 같은 권한을 부여할 수 있다.

2-1 Role (역할)

Role을 통해 여러 권한을 묶어서 사용자에게 할당할 수 있다.

Role은 사용자가 여러 개 가질 수 있으며, 다른 Role에게도 할당할 수 있다.

CREATE ROLE manager_role;
GRANT SELECT, INSERT ON 테이블명 TO manager_role;
GRANT manager_role TO 사용자;

 

※ Privileges 및 Role에 관한 Dictionary 뷰

Oracle 데이터베이스에서 Role 및 권한에 관한 정보를 조회할 수 있는 Dictionary 뷰가 제공된다.

 

  • ROLE_SYS_PRIVS: Role에 부여된 시스템 권한 목록
  • ROLE_TAB_PRIVS: Role에 부여된 테이블 권한 목록
  • USER_ROLE_PRIVS: 현재 사용자가 사용할 수 있는 Role 목록
  • USER_TAB_PRIVS_MADE: 현재 사용자가 소유한 객체에 부여된 권한 목록
  • USER_TAB_PRIVS_RECD: 현재 사용자가 받은 테이블 권한 목록

 

'DB > Oracle' 카테고리의 다른 글

Oracle - Object  (4) 2024.11.04
Oracle - DDL  (2) 2024.11.04
Oracle - Dictionary  (0) 2024.11.04
Oracle - Constraint(제약조건)  (0) 2024.11.04
Oracle - Join  (1) 2024.11.01