사용자가 데이터베이스 객체에 접근하여 SQL 문을 실행하려면 특권을 부여받아야 한다.
스키마 객체인 테이블, 뷰, 시퀀스, 동의어 등에 접근하는 것을 제어하는 권한이다.
다음은 스키마 객체 특권의 종류이다.
특권 | 특권 |
---|---|
SELECT | 테이블을 조회하는 권한이다. |
INSERT | 테이블에 로우를 삽입하는 권한이다. |
UPDATE | 테이블에 로우를 갱신하는 권한이다. |
DELETE | 테이블에 로우를 삭제하는 권한이다. |
ALTER | 스키마 객체의 특성을 변경하는 권한이다. |
INDEX | 테이블에 인덱스를 생성하는 권한이다. |
REFERENCES | 테이블을 참조하는 제약조건을 생성하는 권한이다. |
다른 사용자에게 GRANT 명령을 사용해 스키마 객체 특권을 부여할 수 있다. WITH GRANT OPTION 옵션을 사용하면 다른 사용자에게도 특권을 부여할 수 있다.
다음은 스키마 객체 특권을 부여하는 예이다.
GRANT SELECT, DELETE ON EMPLOYEE TO John WITH GRANT OPTION;
위 예제는 John에게 EMPLOYEE에 대한 SELECT 및 DELETE 특권을 부여하고, 다른 사용자에게도 특권을 부여할 수 있게 된다.
REVOKE 명령을 사용해 사용자의 스키마 객체 특권을 회수할 수 있다.
다음은 스키마 객체 특권을 회수하는 예이다.
GRANT ALL ON John.EMPLOYEE TO Susan; REVOKE ALL ON EMPLOYEE FROM John;
위 예제는 John의 특권을 회수시키는 예로, John이 Susan에게 특권을 부여한 뒤, John의 특권이 회수 되면 Susan에게 부여한 같은 특권도 동시에 회수된다.
데이터베이스를 관리하는 데 필요한 시스템 명령어를 사용하기 위해서는 시스템 특권을 부여받아야 한다. 시스템 특권은 기본적으로 SYS 사용자가 소유하고 있으며, ADMIN 옵션을 통해 다른 사용자에게 부여할 수 있다.
다음은 시스템 특권의 종류이다.
특권 | 설명 |
---|---|
ALTER SYSTEM | ALTER SYSTEM 문을 실행할 수 있는 특권이다. |
CREATE SESSION | 데이터베이스에 세션을 생성할 수 있는 특권이다. 즉 로그인이 가능하다는 것을 의미한다. |
CREATE USER | 사용자를 생성하는 특권이다. |
ALTER USER | 사용자의 정보를 변경하는 특권이다. |
DROP USER | 사용자를 제거하는 특권이다. |
.... | .... |
다른 사용자에 GRANT 명령을 사용해 시스템 특권을 부여할 수 있다. WITH ADMIN OPTION 옵션을 사용하면 스키마 객체 특권과 같이 다른 사용자에게도 특권을 부여할 수 있다.
다음은 시스템 특권을 부여하는 예이다.
GRANT SELECT ANY TABLE TO Susan WITH ADMIN OPTION;
위 예제는 Susan에게 데이터베이스 내의 모든 테이블을 조회하는 특권을 부여하고, 다른 사용자에게도 특권을 부여할 수 있게 된다.
REVOKE 명령을 사용해 사용자의 시스템 특권을 회수할 수 있다. WITH ADMIN OPTION과 함께 부여된 특권은 WITH GRANT OPTION과는 달리 회수되지 않는다.
다음은 시스템 특권을 회수하는 예이다.
GRANT SELECT ANY TABLE TO Peter; REVOKE SELECT ANY TABLE FROM Susan;
위 예제는 Susan의 시스템 특권을 회수하는 예로, 스키마 객체 특권과 달리 특권을 회수하더라도 Susan이 Peter에게 부여한 시스템 특권은 그대로 유지된다.
- 강좌 URL : http://www.gurubee.net/lecture/2092
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.