오라클은 어떤 일을 하려면 해당 일에 대한 권한이 있어야만 할 수 있다. 기본적으로 유저를 생성하면 권한이 없다. DBA가 그때그때 맞게끔 권한을 줘야 한다.

◆ 오라클 유저 권한의 두가지 종류
  ◇ 시스템 권한
    - 서버를 운영하는데 관련된 권한.
    - 주로 DDL과 연관된 것이 많음.
    - 100개 이상의 서로 다른 시스템 권한 종류가 있음.
  ◇ 오브젝트 권한
    - 유저가 만든 오브젝트와 관련된 권한.
    - 주로 DML과 연관된 것이 많음.


◆ 시스템 권한의 예

 카테고리  예
 Index  create any index
 alter any index
 drop any index
 Table  create table
 create any table
 alter any table
 drop any table
 select any table
 update any table
 delete any table
 Session  create session
 alter session
 restricted session
 Tablespace  create tablespace
 alter tablespace
 drop tablespace
 unlimited tablespace
ANY : 자기 것 뿐만 아니라 남의 것도 컨트롤 할 수 있는 키워드. alter any table 하면 남의 테이블을 변경할 수 있는 권한이다.


◆ 미리 만들어진 권한
 카테고리  예
 sysoper  startup
 shutdown
 alter database open | mount
 alter database backup controlfile to
 recover database
 alter database archivelog
 restricted session
 sysdba  sysoper privileges with admin option
 create database
 alter tablespace begin/end backup
 restricted session
 recover database until
오라클에서 SYSDBA의 권한은 OS에서의 루트의 권한과 동등하다.
SYSDBA는 딕셔너리 삭제하는 것만 빼고 다 할 수 있다.


◆ 시스템 권한의 제한
일반 사용자는 원래 DBA의 딕셔너리를 못 보게 되어있다. 하지만 아래의 파라미터 값을 true로 해주면 일반 사용자도 조회가 가능하다.

07_DICTIONARY_ACCESSIBILITY=TRUE;


◆ 시스템 권한 부여

SQL> grant 권한명 to 유저명;

SQL> grant 권한명 to 유저명 with admin option;
WITH ADMIN OPTION : 해당 권한을 유저에게 주었을 때 그 유저는 자기가 받은 권한을 남에게 부여할 수 있다.


◆ 시스템 권한 회수
SQL> revoke 권한명 from 유저명;

시스템 권한 회수시 scott의 권한을 지우면 scott이 hr에게 부여했던 권한은 지워지지 않는다.


◆ 오브젝트 권한 부여
SQL> grant 권한명 on 오브젝트명 to 유저명;

SQL> grant 권한명 on 오브젝트명 to 유저명 with grant option
WITH GRANT OPTION : 해당 권한을 유저에게 주었을 때 그 유저는 자기가 받은 권한을 남에게 부여할 수 있다.


◆ 오브젝트 권한 회수
SQL> revoke 권한명 on 오브젝트명 from 유저명;

오브젝트 권한 회수시 scott의 권한을 지우면 scott이 hr에게 부여했던 권한까지 모두 지워진다.


◆ 권한 관련 데이터 딕셔너리
  - DBA_SYS_PRIVS
  - SESSION_PRIVS
  - DBA_TAB_PRIVS
  - DBA_COL_PRIVS


◆ SYS, SCOTT 유저가 가지고 있는 권한 조회
SQL> select *
   from dba_sys_privs
   where grantee in ('SYS', 'SCOTT');


◆ DEPT 테이블에 달린 권한 조회
SQL> select *
   from all_tab_privs
   where table_name='DEPT';

'오라클 > Admin' 카테고리의 다른 글

[Admin] Role  (0) 2010.09.04
[Admin] User and Schema  (0) 2010.09.04
[Admin] Profile  (0) 2010.09.04
[Admin] Table Reorganization  (0) 2010.09.03
[Admin] Extent와 Block과의 관계  (0) 2010.09.02
Posted by 겨울섬
,