Oracle 권한 및 롤

2025. 2. 21. 00:09·개발/SQL

권한(Privilege):

  • 데이터베이스에서 특정 작업을 수행할 수 있는 개별적인 권리.
  • 각 권한은 특정 객체나 시스템 레벨의 작업에 대한 접근을 제어.

롤(Role):

  • 하나 이상의 권한을 그룹화한 것.
  • 롤을 사용자에게 부여하면, 롤에 포함된 모든 권한이 사용자에게 동시에 부여된다.
  • 권한 관리를 단순화하고 효율적으로 만들어준다.
  • 예를 들어, CONNECT, RESOURCE, DBA 등이 있다.

1. 주요 권한(Privilege):

  • 시스템 권한(System Privilege):
    • 데이터베이스 시스템 전체에 대한 작업을 수행할 수 있는 권한.
    • CREATE SESSION: 데이터베이스에 접속할 수 있는 권한.
    • CREATE TABLE: 테이블을 생성할 수 있는 권한.
    • CREATE VIEW: 뷰를 생성할 수 있는 권한.
    • CREATE PROCEDURE: 프로시저를 생성할 수 있는 권한.
    • CREATE USER: 사용자를 생성할 수 있는 권한.
    • DROP USER: 사용자를 삭제할 수 있는 권한.
    • GRANT ANY PRIVILEGE: 다른 사용자에게 권한을 부여할 수 있는 권한.
    • SELECT ANY TABLE: 모든 테이블의 데이터를 조회할 수 있는 권한.
    • INSERT ANY TABLE: 모든 테이블에 데이터를 삽입할 수 있는 권한.
    • UPDATE ANY TABLE: 모든 테이블의 데이터를 수정할 수 있는 권한.
    • DELETE ANY TABLE: 모든 테이블의 데이터를 삭제할 수 있는 권한.
  • 객체 권한(Object Privilege):
    • 특정 데이터베이스 객체(테이블, 뷰, 프로시저 등)에 대한 작업을 수행할 수 있는 권한.
    • SELECT: 특정 테이블 또는 뷰의 데이터를 조회할 수 있는 권한.
    • INSERT: 특정 테이블에 데이터를 삽입할 수 있는 권한.
    • UPDATE: 특정 테이블의 데이터를 수정할 수 있는 권한.
    • DELETE: 특정 테이블의 데이터를 삭제할 수 있는 권한.
    • EXECUTE: 특정 프로시저 또는 함수를 실행할 수 있는 권한.

2. 주요 롤(Role):

  • CONNECT:
    • 데이터베이스에 접속할 수 있는 기본적인 권한들을 포함하는 롤.
    • 주로 CREATE SESSION 권한을 포함.
  • RESOURCE:
    • 테이블, 뷰, 프로시저 등 데이터베이스 객체를 생성할 수 있는 권한들을 포함하는 롤.
    • 주로 CREATE TABLE, CREATE PROCEDURE 등의 권한을 포함.
  • DBA(Database Administrator):
    • 데이터베이스 관리자에게 필요한 모든 권한을 포함하는 롤.
    • 데이터베이스 시스템 전체에 대한 모든 작업을 수행할 수 있다.
  • SELECT_CATALOG_ROLE:
    • 데이터 딕셔너리 정보에 대한 SELECT 권한을 제공하는 롤.
  • EXECUTE_CATALOG_ROLE:
    • 데이터 딕셔너리 프로시저의 실행 권한을 제공하는 롤.

3. 권한 및 롤 관련 SQL 문:

  • 권한 부여:
    • GRANT 권한_이름 TO 사용자_이름;
    • 예: GRANT CREATE SESSION TO user1;
  • 권한 회수:
    • REVOKE 권한_이름 FROM 사용자_이름;
    • 예: REVOKE CREATE SESSION FROM user1;
  • 롤 부여:
    • GRANT 롤_이름 TO 사용자_이름;
    • 예: GRANT CONNECT TO user1;
  • 롤 회수:
    • REVOKE 롤_이름 FROM 사용자_이름;
    • 예: REVOKE CONNECT FROM user1;
  • 롤 생성:
    • CREATE ROLE 롤_이름;
  • 롤에 권한 부여:
    • GRANT 권한_이름 TO 롤_이름;
  • 롤 삭제:
    • DROP ROLE 롤_이름;
  • 사용자가 가진 권한 조회:
    • SELECT * FROM dba_sys_privs WHERE grantee = '사용자_이름';
  • 사용자가 가진 객체 권한 조회:
    • SELECT * FROM dba_tab_privs WHERE grantee = '사용자_이름';
  • 롤에 부여된 권한 조회:
    • SELECT * FROM dba_role_privs WHERE grantee = '롤_이름';
저작자표시 비영리 변경금지 (새창열림)

'개발 > SQL' 카테고리의 다른 글

Oracle 데이터 타입 - 숫자  (0) 2025.02.21
Oracle 데이터 타입 - 문자열  (0) 2025.02.21
Oracle 11g XE scott계정 생성하기  (0) 2025.02.21
Oracle 기본 계정 및 계정관련 sql  (0) 2025.02.21
Oracle 11gXE 설치하기  (0) 2025.02.20
'개발/SQL' 카테고리의 다른 글
  • Oracle 데이터 타입 - 문자열
  • Oracle 11g XE scott계정 생성하기
  • Oracle 기본 계정 및 계정관련 sql
  • Oracle 11gXE 설치하기
함수형 인간
함수형 인간
잘 까먹는 개발자의 두뇌 확장 장치
  • 함수형 인간
    개발 기록 노트
    함수형 인간
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 글 목록 (84)
      • 기타 (1)
      • 개발 (82)
        • Java (6)
        • Javascript (1)
        • Spring (20)
        • jQuery (0)
        • Git (0)
        • servlet (11)
        • JSP (6)
        • HTML (0)
        • CSS (10)
        • SQL (9)
        • JSTL (3)
        • Mybatis (4)
        • Design Patterns (0)
        • HTTP (2)
        • Devtools (0)
        • IntelliJ (5)
        • JDBC (1)
        • Lombok (3)
        • Logging (1)
      • 책 리뷰 (0)
  • hELLO· Designed By정상우.v4.10.3
함수형 인간
Oracle 권한 및 롤
상단으로

티스토리툴바