D32 DCL

Yoon Whimyong·2024년 11월 6일

241107

DCL (DATE CONTROL LANGUAGE)

데이터를 제어하는 언어

  • 계정에게 시스템 권한 또는 객체접근권한 (GRANT), 회수(REVOKE) FMF GKSMS DJSDJ
  • 권한부여 (GRANT)
    1) 시스템 권한
    특정 DB에 접근할 수 있는 권한, 객체들을 생성 할 수 있는 권한
    2) ROLE 권한
    시스템 권한들을 하나의 집합으로 모아 놓은 것.
    권한 부여 방법
    GRANT 권한1, 권한2, 권한3, ,,, TO 계정명;
    	    시스템 권한 종류 
            CREATE SESSION : 계정에 접속 권한
            CREATE TAVLE    : 테이블 생성 권한
            CREATE VIEW      : 뷰 생성 권한
            CREATE SEQUENCE : 시퀀스 생성 권한
            CREATE USER      : 계성 생성 권한
            .... 등등 많다

1. 관리자 계정에서의 기본 계정생성

-- 1. SAMPLE 계정 생성
CREATE USER C##SAMPLE IDENTIFIED BY SAMPLE;
-- 2. SAMPLE 계정에 접속을 위한 CREATE SESSION 권한 추가. (CONNECT)-포함되어있음
GRANT CREATE SESSION TO C##SAMPLE;
--3_1. SAMPLE 계정에 CREATE TABLE 권한 추가
GRANT CREATE TABLE TO C##SAMPLE;

3_1.SAMPLE 계정 시트

계정3_1. CREATE TABLE 권한을 부여 받기전
CREATE TABLE TEST(
    TEST_ID NUMBER
    );
    --insufficient privileges : 불충분한 권한

3_2.관리자 계정시트

3_2. SAMPLE 계정에 테이블스페이스 (저장가능용량) 설정하기
GRANT UNLIMITED TABLESPACE TO C##SAMPLE; --제한용량이 없다
ALTER USER C##SAMPLE QUOTA 2M ON SYSTEM; --QUOTA 나누어주다 2메가바이트
-- 시스템의 데이터를 나누어 주었다라는 문법

3_2. SAMPLE 계정 시트

--3_2. CREATE TABLE 권한을 부여받은 후      
CREATE TABLE TEST(
    TEST_ID NUMBER
 );
-- 테이블 스페이스 USETS 에 대한 권한 불충분으로 데이터 추가 불가능.  
INSERT INTO TEST VALUES (1);
--테이블 스페이스 권한 추가 후 데이터 추가 가능
INSERT INTO TEST VALUES (1);
-- CRETAE TABLE 권한 추가시 TABLE 대한 DML권한도 추가완료.

4.관리자 계정시트

-- 4. CREATE VIEW 권한을 SAMPLE에 추가하기
-- CREATE VIEW 권한은 RESOURCE에 포함되지 않는다
GRANT CREATE VIEW TO C##SAMPLE;

4.SAMPLE 계정 시트

-- 4. 뷰 생성해 보기
CREATE VIEW V_TEST
AS SELECT * FROM TEST; --생성 완료

5.관리자 계정시트

--5. SAMPLE 계정에 KH.EMPLOYEE 테이블을 "조회"권한 부여
GRANT SELECT ON C##KH.EMPLOYEE TO C##SAMPLE;

5.SAMPLE 계정 시트

-- 5. SAMPLE 계정에서 KH 계정의 테이블에 접근 조회하기.
SELECT *
FROM EMPLOYEE; -- 찾을수 없지
SELECT *
FROM C##KH.EMPLOYEE;
-- KH 계정 테이블에 접근 할 수 있는 권한 부족 (오류 발생)
-- 권한 부여 받은후 
SELECT *
FROM C##KH.EMPLOYEE; -- 잘 나온다~

0개의 댓글