-
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에 정의된 권한 세 가지 확인