티스토리 뷰
DCL (Data Control Language) : 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용
- 데이터 베이스 관리자가 데이터 관리를 목적으로 사용
유형
1. GRANT : 권한 부여
- 유저에게 여러 권한(삽입, 삭제, 생성 등)을 부여
ⓐ 시스템
- 기본 형태
GRANT [권한명 | 롤 | ALL] TO [유저명 | 롤 | PUBLIC]
[WITH ADMIN OPTION];
- 대표적인 시스템 권한 종류
- CREATE SESSION : 데이터 베이스를 연결할 수 있는 권한
- CREATE ROLE : 오라클 데이터 베이스 역할을 생성할 수 있는 권한
- CREATE VIEW : 뷰의 생성 권한
- ALTER USER : 생성한 사용자의 정의를 변경할 수 있는 권한
- DROP USER : 생성한 사용자를 삭제시키는 권한
#권한을 동시에 여러 개 줄 때에는 콤마를 사용해서 구분
ⓑ 객체
- 기본 형태
GRANT [권한명 | ALL] ON [객체명 | PUBLIC] TO [유저명]
[WITH GRANT OPTION];
- 테이블이나 뷰, 시퀀스, 프로시저, 함수 또는 패키지 중 지정된 한 객체에 특별한 작업을 수행 할 수 있게 함
- 객체 소유자는 다른 사용자들에게 특정 객체 권한을 부여 할 수 있음
- PUBLIC으로 권한을 부여하면 회수할 때에도 PUBLIC으로 해야함
- 기본적으로 소유한 객체에 대해서는 모든 권한이 자동적으로 획득됨
- WITH GRANT OPTION은 ROLE에 대한 권한을 부여할 떄 사용할 수 없음
- 객체에 따른 권한 목록
객체 권한 |
테이블 |
뷰 |
시퀀스 |
프로시저 |
ALTER |
○ |
|
○ |
|
DELETE |
○ |
○ |
|
|
EXECUTE |
|
|
|
○ |
INDEX |
○ |
|
|
|
INSERT |
○ |
○ |
|
|
SELECT |
○ |
○ |
○ |
|
2. REVOKE : 권한 해제
- 사용자에게 권한을 해제
- CASCADE CONSTRAINTS : 외래키 관계의 테이블을 권한을 해제할 때 사용
-> 참조 객체 권한에서 사용된 참조 무결성 제한을 같이 삭제 할 수 있음
- WITH ADMIN OPTION
-> A가 B에게 권한을 부여하고, B가 C에게 권한을 부여했을 때
A가 B의 권한을 제거해도 C의 권한은 유지됨
- WITH GRANT OPTION
-> A가 B에게 권한을 부여하고, B가 C에게 권한을 부여했을 때
A가 B의 권한을 제거하면 C의 권한도 같이 제거됨
ⓐ 시스템
- 기본 형태
REVOKE [권한명 | ALL] FROM [유저명 | 롤 | PUBLIC];
ⓑ 객체
- 기본 형태
REVOKE [권한명 | ALL] ON [객체명]
FROM [유저명 | 롤 | PUBLIC];
예제
사용자를 추가했지만, 권한을 주지 않음
system으로 들어가서 user1과 user2에게 테이블과 세션을 만들 수 있는 권한 부여
user1으로 들어가서 권한이 부여되었는지 확인
ADMIN 권한 부여가 되어 있지 않음
#CREATE TABLE -> NO
#SESSION과 TABLE생성과는 별개의 권한
user1에 대한 권한 제거후 확인
WITH ADMIN OPTION
- 권한 부여
system이 user1에게 테이블 생성에 대한 권한을 부여
user1이 user2에게 테이블 생성에 대한 권한을 줌
user1에 대한 권한 확인
#CREATE TABLE -> YES
- user1에 대한 권한 제거
user1의 create table권한을 제거하고 user1과 user2의 권한을 확인
user1의 권한만 없어진 것을 확인
- 테이블 생성 후 테이블에 대한 권한 부여
- 테이블명 : test
user1에게 권한이 부여된 것을 확인할 수 있다
- 권한 제거
user1에게 권한이 제거된 것을 확인할 수 있다
WITH GRANT OPTION
- 권한 부여
user1에게 권한 부여
user1에게 권한이 부여된 것을 확인할 수 있다
user1이 user2에게 system의 test 테이블에 대한 권한 부여
user2에게 권한이 부여된 것을 확인 할 수 있다
- 권한 제거
system에서 user1에 대한 권한을 제거
user1과 user2의 권한 확인
둘 다 권한이 제거된 것을 확인 할 수 있다
'DATABASE > SQL' 카테고리의 다른 글
[SQL] CURSOR (0) | 2018.04.24 |
---|---|
[SQL] ROLE (0) | 2018.04.24 |
[SQL] TRIGGER (0) | 2018.04.23 |
[SQL] SUBPROGRAM PACKAGE (0) | 2018.04.23 |
[SQL] PROCEDURE (0) | 2018.04.23 |