ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DCL
    Oracle 2020. 12. 22. 22:53

    DCL(Data Control Language) 데이터 제의어

    : 데이터베이스, 데이터베이스 객체에 대한 접근 권한을 제어(부여, 회수)하는 언어

     

    GRANT : 부여

    REVOKE : 회수

     

    관리자 계정(Administrator Account)

    : 데이터베이스의 생성과 관리를 담당하는 Super User 계정

    오브젝트의 생성, 변경, 삭제 등의 작업이 가능

    데이터베이스에 대한 모든 권한과 책임을 가지는 계정

     

    사용자 계정(General User Account)

    : 데이터베이스에 대하의 질의(Query), 갱신, 보고서 작성 등의 작업을 수행

    일반 계정은 보안을 위하여 업무에 필요한 최소한의 권한만 가지는 것이 원칙

     

    시스템 권한 : 사용자에게 시스템 권한을 부여하는 권한

    CREATE SESSION : 데이터베이스 접속할 수 있는 권한(계정 접속)

    CREATE TABLE : 테이블 생성 권한

    CREATE VIEW : 뷰 생성 권한

    CREATE SEQUENSE : 시퀀스 생성 권한

    ...

    등 

     

     

    표기법

    GRANT 권한1, 권한2, ... TO 사용자 계정 이름;

     

    예시로 sample 계정을 생성

    CREATE USER sample IDENTIFIED BY sample; 

    (USER 계정 이름 IDENTIFIED BY 비밀번호)

     

    해당 계정에 접속하기 위해 CREATE SESSION 권한 부여

    GRANT CREATE SESSION TO sample;

     

    해당 계정(sample)에서 테이블을 생성할 수 있는 CREATE TABLE 권한 부여

    GRANT CREATE TABLE TO sample;

     

    테이블 스페이스 할당량 부여

    ALTER USER sample QUOTA 2M ON SYSTEM;

     

    BUT

    하나하나 권한을 부여하기 어려우므로 롤(ROLE)을 사용하여 그룹으로 만들어서 부여

    설치 시 기본 제공 되는(사전 정의 된) 롤이 있다.

    1. CONNECT

    : 사용자가 데이터베이스에 접속하여 세션을 생성하거나 테이블 또는 뷰와 같은 객체를 생성할 수 있는 권한을 그룹화한 롤.


    2. RESOURCE

    : 사용자에게 자신의 테이블, 시퀀스, 프로시저, 트리거와 같은 객체를 생성할 수 있는 권한을 부여한 롤.

    3. DBA

    : WITH ADMIN OPTION이 있는 모든 시스템 권한

    시스템 자원의 무제한적인 사용이나 시스템 관리에 필요한 모든 권한 그리고 DBA권한을 다른 사용자에게 부여할 수 있는 강력한 권한을 보유한 롤. 또한 모든 사용자의 CONNECT, RESOURCE, DBA권한을 포함한 어떠한 권한을 부여하거나 철회할 수 있다.

     

    나만의 롤 생성 방법

    CREATE ROLE MYROLE(롤이름);

     

    롤에 권한 부여(내가 그룹으로 묶어 부여하고 싶은 권한 나열 작성)

    GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW

    TO MYROLE;

     

    롤을 사용자에게 부여

    CREATE USER USER1 IDENTIFIED USER1;

    GRANT MYROLE TO USER1;

     

    USER1에게 부여된 롤 확인

    SELECT *

    FROM DBA_ROLE_PRIVS

    WHERE GRANTEE = 'USER1';

    USER1에 부여된 권한 MYROLE 확인

    MYROLE에 그루핑된 권한 종류 확인

    SELECT *
    FROM DBA_SYS_PRIVS
    WHERE GRANTEE = 'MYROLE';

    MYROLE에 정의된 권한 세 가지 확인

     

    댓글

Designed by Tistory.