DCL이란?
DCL(Data Control Language)은 데이터 제어 언어로 데이터베이스에서 데이터에 대한 권한을 제어하는 데 사용된다.
권한 부여(GRANT)
-- 사용자 생성 권한 부여
GRANT CREATE USER TO 사용자명;
-- 로그인 권한 부여
GRANT CREATE SESSION TO 사용자명;
-- 테이블 생성 권한 부여
GRANT CREATE TABLE TO 사용자명;
-- 다른 사용자의 테이블 SELECT 권한 부여
GRANT SELECT ON 사용자.테이블명 TO 사용자명;
권한 회수(REVOKE)
-- 사용자 생성 권한 회수
REVOKE CREATE USER FROM 사용자명;
-- 로그인 권한 회수
REVOKE CREATE SESSION FROM 사용자명;
-- 테이블 생성 권한 회수
REVOKE CREATE TABLE FROM 사용자명;
-- 다른 사용자의 테이블 SELECT 권한 회수
REVOKE SELECT ON 사용자.테이블명 FROM 사용자명;
위에서 사용한 권한 외에도 CREATE PROCEDURE, CREATE SEQUENCE 등 다양한 권한이 있다.
ROLE
-- 여러 개의 권한을 합친 ROLE 생성
CREATE ROLE 룰이름;
-- 생성한 ROLE에 권한 부여
GRANT CREATE SESSION, CREATE TABLE TO 룰이름;
-- 생성한 ROLE을 사용자에게 권한 부여
GRANT 룰이름 TO 사용자명;
ROLE을 통해 여러 개의 권한을 한 번에 부여하고 회수할 수 있다.
-- 오라클에서 제공하는 ROLE
-- 1. CONNECT : 접속 권한
GRANT CONNECT TO 사용자명;
-- 2. RESOURCE : 객체 생성 및 조작 권한
GRANT RESOURCE TO 사용자명;
-- 3. DBA : 준관리자급 권한
GRANT DBA TO 사용자명;
오라클에서 기본적으로 CONNECT, RESOURCE, DBA와 같은 ROLE을 제공하고 있다.
-- 사용자에 부여된 권한 조회
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 사용자명;
함께 읽으면 도움 되는 글 목록