DCL (GRANT, REVOKE)

Jieun·2023년 1월 26일
0

📝 DCL 공부 후 자습
#230126

📌 DCL(Data Control Language)

계정의 DB, DB 객체에 대한 접근 권한을 부여(GRANT)하고 회수(REVOKE)하는 언어

✔️ 권한의 종류

1. 시스템 권한(제어) : DB접속, 객체 생성 권한 (= DDL을 실행할 수 있게 해주는 권한)

- CRETAE SESSION   : 데이터베이스 접속 권한
- CREATE TABLE     : 테이블 생성 권한
- CREATE VIEW      : 뷰 생성 권한
- CREATE SEQUENCE  : 시퀀스 생성 권한
- CREATE PROCEDURE : 함수(프로시져) 생성 권한
- CREATE USER      : 사용자(계정) 생성 권한
- DROP USER        : 사용자(계정) 삭제 권한
- DROP ANY TABLE   : 임의 테이블 삭제 권한

2. 객체 권한 : 특정 객체를 조작할 수 있는 권한 (= DML 할 수 있는 권한)

    권한 종류                 설정 객체

    SELECT              TABLE, VIEW, SEQUENCE
    INSERT              TABLE, VIEW
    UPDATE              TABLE, VIEW
    DELETE              TABLE, VIEW
    ALTER               TABLE, SEQUENCE
    REFERENCES          TABLE
    INDEX               TABLE
    EXECUTE             PROCEDURE

✔️ USER - 계정(사용자)

1. 관리자 계정

  • 데이터베이스의 생성과 관리를 담당하는 계정.
  • 모든 권한과 책임을 가지는 계정.
    ex) sys(최고관리자), system(sys에서 권한 몇개 제외된 관리자)

2. 사용자 계정

  • 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등의 작업을 수행할 수 있는 계정
  • 업무에 필요한 [[최소한의 권한만을 가지는 것을 원칙]]으로 한다.
    ex) sample 계정

🏷️ 1. (SYS) 사용자 계정 생성

[작성법]
CREATE USER 사용자명 IDENTIFIED BY 비밀번호;

💻 예전 SQL 방식 허용(계정명 간단히 작성 가능) 하는 문구

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;

🏷️ 2. (SYS) 접속 권한 부여

[작성법]
GRANT 권한, 권한, 권한..... 사용자명;

** 권한은 위에 시스템권한 중 하나 적어주면 됨.


🏷️ 3. (SYS) 테이블 생성 권한

[작성법]
GRANT CREATE TABLE TO 사용자명;



✔️ ROLE(역할) : 권한 묶음

묶어둔 권한(ROLE) 특정 계정에 부여
해당 계정은 지정된 권한을 이용해서 특정 역할을 갖게 된다.

  • CONNECT : DB 접속 관련 권한을 묶어든 ROLE
  • RESOURCE : DB 사용을 위한 기본 객체 생성 권한을 묶어둔 ROLE

✔️ 객체권한

사용자 계정끼리 서로 객체 접근 권한 부여

[작성법]
GRANT 객체권한 ON 객체명 TO 사용자명;

** 권한은 위에 객체권한 중 하나 적어주면 됨.

✔️ 객체권한 회수

기존에 부여한 권한 회수

[작성법]
REVOKE 객체권한 ON 객체명 FROM 사용자명;

** 권한은 위에 객체권한 중 하나 적어주면 됨.

profile
👩‍💼👩‍💼➡️➡️➡️👩‍💻👩‍💻 생산자의 삶을 살기 위해 개발공부중

0개의 댓글