WITH 구문
- WITH 구문은 서브쿼리(SubQuery)를 사용해서 임시 테이블이나 뷰처럼 사용할 수 있는 구문이다.
- 서브쿼리 블록에 별칭을 지정할 수 있다.
- 옵티마이저는 SQL을 인라인 뷰나 임시 테이블로 판단한다.
WITH viewData AS
(
SELECT * FROM EMP
UNION
SELECT * FROM EMP
)
SELECT * FROM viewdData WHERE EMPNO = 1000;
SubQuery를 사용해서 임시 테이블을 만든다.
DCL(Data Control Language)
GRANT
- GRANT 문은 데이터베이스 사용자에게 권한을 부여한다.
- 데이터베이스 사용을 위해서는 권한이 필요하며 연결, 입력, 수정, 삭제, 조회를 할 수 있다.
GRANT privileges ON object TO user;
- privileges 는 권한을 의미하며, object는 테이블 명이다.
- user는 Oracle 데이터베이스 사용자를 지정하면 된다.
Privileges(권한)
권한 | 설명 |
---|
SELECT | 지정된 테이블에 대해서 SELECT 권한을 부여한다. |
INSERT | 지정된 테이블에 대해서 INSERT 권한을 부여한다. |
UPDATE | 지정된 테이블에 대해서 UPDATE 권한을 부여한다. |
DELETE | 지정된 테이블에 대해서 DELETE 권한을 부여한다. |
REFERENCES | 지정된 테이블을 참조하는 제약조건을 생성하는 권한을 부여한다. |
ALTER | 지정된 테이블에 대해서 수정할 수 있는 권한을 부여한다. |
INDEX | 지정된 테이블에 대해서 인덱스를 생성할 수 있는 권한을 부여한다. |
ALL | 테이블에 대한 모든 권한을 부여한다. |
사용자에 대한 권한 부여
GRANT SELECT, INSERT, UPDATE, DELETE
ON EMP
TO LIMBEST;
- LIMBEST 사용자에게 EMP 테이블에 대해서 SELECT, INSERT, UPDATE, DELETE 권한을 부여한다.
WITH GRANT OPTION과 ADMIN OPTION
옵션 | 설명 |
---|
WITH GRANT OPTION | - 특정 사용자에게 권한을 부여할 수 있는 권한을 부여한다. |
| -권한을 A 사용자가 B에 부여하고 B가 다시 C를 부여한 후에 권한을 취소(Revoke)하면 모든 권한이 회수된다. |
WITH ADMIN OPTION | - 테이블에 대한 모든 권한을 부여한다. |
| - 권한을 A 사용자가 B에 부여하고 B가 다시 C에게 부여한 후에 권한을 취소(Revoke)하면 B 사용자 권한만 취소된다. |
WITH GRANT OPTION
GRANT SELECT, INSERT, UPDATE, DELETE
ON EMP
TO LIMBEST WITH GRANT OPTION;
- 권한을 부여할 수 있는 권한을 부여한다.
REVOKE
- REVOKE문은 데이터베이스 사용자에게 부여된 권한을 회수한다.
REVOKE privileges ON object FROM user;