본문 바로가기

Programming/SQL(Oracle)

DAY 68. [DataBase] DCL

 

 

DCL(DATA CONTROL LANGUAGE)

계정에게 시스템 권한 또는 객체에 대한 접근 권한을 부여(GRANT)하거나 회수(REVOKE)하는 언어이다.

 

    <시스템 권한의 종류>

        - CREATE SESSION    : 데이터 베이스에 접속할 수 있는 권한
        - CREATE TABLE      : 테이블을 생성할 수 있는 권한
        - CREATE VIEW       : 뷰를 생성할 수 있는 권한
        - CREATE SEQUENCE   : 시퀀스를 생성할 수 있는 권한
        - CREATE PROCEDURE  : 프로시저를 생성할 수 있는 권한
        - CREATE USER       : 계정을 생성할 수 있는 권한
        등등 ...

    [표현법]
        GRANT 권한1, 권한2, ... TO 사용자계정명;
        REVOKE 권한1, 권한2, ... FROM 사용자계정명;


-- 1. 계정 생성
CREATE USER SAMPLE IDENTIFIED BY SAMPLE;

-- 2. 계정에 접속하기 위해 위에서 CREATE SESSION 권한 부여
GRANT CREATE SESSION TO SAMPLE;

-- 3. 계정에서 테이블을 생성할 수 있는 CREATE TABLE 권한을 부여
GRANT CREATE TABLE TO SAMPLE;

-- 4. 테이블 스페이스 할당 : 테이블, 뷰, 인덱스 등 객체들이 저장되는 공간
ALTER USER SAMPLE QUOTA 2M ON SYSTEM;

 

기존에 권한은 ROLE_SYS_PRIVS 안에 CREATE SESSION이 존재했었다.

GRANT CREATE 다음에 테이블, 시퀀스 등등 객체를 생성할 수 있는 권한을 줄 수 있다.

 

<객체 권한>
    특정 객체를 조작할 수 있는 권한
    
    <권한 종류    |  설정 객체>
    SELECT      : TABLE, VIEW, SEQUENCE 
    INSERT      : TABLE, VIEW
    UPDATE      : TABLE, VIEW
    DELETE      : TABLE, VIEW
    ALTER       : TABLE, SEQUENCE
    등등 .. 
    
    [표현법]
        GRANT 권한종류 ON 특정객체 TO 계정;


-- 5. KH.EMPLOYEE 테이블을 조회할 수 있는 권한 부여 
GRANT SELECT ON KH.EMPLOYEE TO SAMPLE;

-- 6. KH.DEPARTMENT 테이블을 조회할 수 있는 권한 부여
GRANT SELECT ON KH.DEPARTMENT TO SAMPLE;

-- 7. KH.DEPARTMENT 테이블에 데이터를 삽입 할 수 있는 권한 부여
GRANT INSERT ON KH.DEPARTMENT TO SAMPLE;

-- 8. KH.DEPARTMENT 테이블에 데이터를 삽입 할 수 있는 권한 회수
REVOKE INSERT ON KH.DEPARTMENT FROM SAMPLE;

-- 9. 모든 테이블에 대한 조회 권한 설정
GRANT SELECT ANY TABLE TO SAMPLE;

-- 10. 모든 테이블에 대한 조회 권한 회수
REVOKE SELECT ANY TABLE FROM SMAPLE;

'Programming > SQL(Oracle)' 카테고리의 다른 글

DAY 67. [DataBase] PROCEDURE&FUNCTION  (0) 2021.10.24
DAY 66. [DataBase] PL/SQL  (0) 2021.10.23
DAY 65. [DataBase] 객체 INDEX  (0) 2021.10.22
DAY 64. [DataBase] 객체 SEQUENCE  (0) 2021.10.21
DAY 64. [DataBase] 객체 VIEW  (0) 2021.10.20