컴퓨터 공부/Advanced Database

[6월 5일 4교시] 데이터 제어 2

려리군 2009. 6. 5. 14:42

SQL 

 - DML(select, insert, update, delete, commit, rollback)

 - DDL(create, alter : 컬럼에 대한 변경(추가, 수정, 삭제), 제약조건(enable, disable), drop, truncate)

※ Oracle 10g에는 Flashback기능이 있다. (5분전, 10분전 상태로 가는 기능)

 - DCL(grant, revoke)


권한 : 시스템 권한, 스키마 객체 권한


시스템 권한

특별한 행동을 수행하는 권한

(객체 권한이 아닌 권한)

CREATE SESSION, CREATE TABLE(ALTER, DROP포함), SELECT ANY TABLE, EXECUTE ANY PROCEDURE, DROP ANY TABLE


시스템 권한 제어 

GRANT 문법)

GRANT 시스템 특권|role,... 

TO {사용자,...|role|PUBLIC}

[WITH ADMIN OPTION]

PUBLIC : 모두에게 주는 권한

ADMIN OPTION : 시스템 권한도 사용자에게 준다.

REVOKE 문법)

REVOKE 시스템 특권|role,... 

FROM {사용자,...|role|PUBLIC} 

※ REVOKE : 권한을 뺐을 때 대물림 되서 뺐끼지 않는다.


객체 권한 : ON이 있으면 객체에 대한 권한이다.

GRANT 문법)

GRANT 시스템 특권|role,... 

ON 객체 TO {사용자,...|role|PUBLIC}

[WITH GRANT OPTION]

REVOKE 문법)

REVOKE 시스템 특권|role,... 

ON 객체 FROM {사용자,...|role|PUBLIC}

※ REVOKE : 권한을 뺐을 때 대물림하여 뺐어온다.

Role
특권 관리를 Role을 통해 쉽게 제어할 수 있다.
관련된 특권의 이름을 붙인 그룹이다.
시스템 및 객체 권한이 될 수 있다.

※ conn명령은 세션(사용자와 오라클 서버와의 관계)을 만들기 위한 명령이다.
GRANT CREATE SESSION TO 사용자;

※ CONNECT와 RESOURCE는 오라클에서 기본적으로 설정한 role이다.
GRANT CONNECT, RESOURCE TO 사용자;


※ select와 sal(월급)에 대한 갱신 권한을 준다.
GRANT select on emp TO test1
GRANT update(sal) on emp TO test1

사용자에게 부여된 권한
시스템 권한 : user_sys_privs
객체 권한 : user_tab_privs(select), user_tab_privs(update(sal))
role로 부여된 권한 user_role_privs
role 내의 권한 role_sys_privs(롤에 포함된 시스템 권한), role_tab_privs, role_role_privs

권한 설명
UNLIMITED TABLESPACE(시스템) : RESOURCE role에 포함되어 있고 테이블에 대한 할당량을 무제한으로 이용할 수 있다.