<DCL: 데이터 제어어>
-
DCL: DATA CONTROL LANGUAGE 데이터 제어 언어
-
데이터의 사용권한을 관리
-
GRANT: 특정 사용자에게 수행 권한을 부여
-
REVOKE: 특정 사용자에게 수행 권한을 회수 및 박탈
-
새 유저 만들기
1
|
CREATE USER John Identified by 1234;
--새유저 존을 만들고 비밀번호 1234 |
cs |
HR 계정에서 나오고 Oracle-XE로 연결
데이터베이스 접속 선택 시 접속권한이 없어서 실패함
-
접속 권한 주기
1
2
|
GRANT CREATE SESSION TO John;
--John 유저에게 접속 권한 주기
|
cs |
존 계정으로 접속 성공
-
테이블 생성
CREATE TABLE t1 (
id NUMBER PRIMARY KEY
);
1
2
3
|
CREATE TABLE t1 (
id NUMBER PRIMARY KEY
);
|
cs |
테이블을 만들수 있는 권한도 따로 필요함
-
테이블 생성 권한 부여
1
|
GRANT CREATE TABLE TO John;
|
cs |
존계정에서 테이블이 안만들어짐
테이블 스페이스 생성 필요
경로복사
-
테이블 스페이스 (테이블을 저장할 수 있는 공간)
1
2
3
4
5
6
|
CREATE TABLESPACE johnSpace
DATAFILE 'C:\oraclexe\app\oracle\oradata\XE\john.dbf' SIZE 10M
AUTOEXTEND ON NEXT 5M;
--johnSpace라는 테이블 저장공간 생성 (테이블 스페이스)
--파일의 경로 설정, 최초사이즈는 10mbyte
--자동으로 테이블공간이 부족하면 5mbyte씩 추가됨
|
cs |
-
존계정이 이 테이블스페이스를 사용할 수 있도록
1
2
3
4
|
ALTER USER John DEFAULT TABLESPACE johnSpace;
--디폴트 존스페이스로
ALTER USER John QUOTA UNLIMITED ON johnSpace;
--테이블 스페이스 사용권한
|
cs |
-
롤(ROLE) 부여
1
2
3
|
GRANT CONNECT, RESOURCE to John;
--Connect 롤은 접속관련 권한들의 모음
--Resource 롤은 여러객체들(테이블, 뷰등)을 생성및 사용 권한
|
cs |
1
2
3
4
|
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
SELECT * FROM t1;
|
cs |
-
DBA: 관리자 권한
-
권한을 제거 및 회수 REVOKE + 권한 + FROM + 유저
1
|
REVOKE CREATE TABLE FROM John;
|
cs |
1
2
3
|
CREATE TABLE t2 (
id NUMBER PRIMARY KEY
);
|
cs |
John은 더이상 테이블을 만들 수 있는 권한이 없기에 에러 발생
-
롤을 제거 및 회수
1
|
REVOKE RESOURCE FROM John;
|
cs |
-
John 계정을 삭제
1
|
DROP USER John CASCADE;
|
cs |
-
테이블스페이스 삭제
1
|
DROP TABLESPACE johnSpace;
|
cs |