본문 바로가기

오라클/SQL

oracle user 권한

반응형

ORACLE에서 USER는 sysdba라는 권한을 가진 user와 그렇지 않은 user로 나뉘어 집니다.

 

User란 OS 적인 측면과 Oracle 안에 측면으로 나뉘어 집니다.

 

 

 

 

위와같이 OS에서는 system을 핸들링하는 system user와 ORACLE을 핸들링 하는 oracle user , 또는 OS상에서 개

 

발을 하는 개발자들을 위한 User등등 OS상에서의 유저가 존재하고 이는 OS유저 관리입니다.

 

 

 

 

ORCLE에서는 오라클 내부 system(OS system과는 다른 개념의 oracle DB의 system을 말한다.)권한과

 

Object 권한으로 나뉘어 집니다.

 

 

※시스템 권한 - 데이터베이스 접속, 사용자 생성 및 오브젝트 생성 등의 권한

※오브젝트 권한 - 해당 오브젝트에 대한 전반적인 작업을 위한 권한

 

▣ 시스템 권한

 

시스템 권한 종류  내용
 CREATE USER  데이터 베이스 유저 생성 권한
 SELECT ANY TABLE  모든 유저의 테이블 조회 권한
 CREATE ANY TABLE  모든 유저의 테이블 생성 권한
 CREATE SESSION  데이터베이스 접속 권한
 CREATE TABLE  테이블 생성 권한
 CREATE VIEW  뷰 생성 권한
 CREATE PROCED USER  프로시저 생성 권한
 CREATE SEQUENCE  시퀀스 생성 권한
 SYSDBA  데이터베이스를 관리하는 최고 권한
 SYSOPER  데이터베이스를 관리하는 권한

 

 

 

 아래는 SYSOPER와 SYSDBA 권한에서 수행할수 있는 작업입니다.

 

 SYSOPER  ⊙ 데이터베이스 시작, 종료 및 상태 전환
 ⊙ 테이블스페이스 및 컨트롤 파일 백업
 ⊙ 데이터베이스 아카이브 또는 노아카이브 로그 모드 전환
 ⊙ 파라메터 파일 생성
 ⊙ 데이터베이스 완전 복구
 ⊙ 접속 세션 제한
 SYSDBA  ⊙ SYSOPER가 소유한 모든 권한
 ⊙ 데이터베이스 생성 및 삭제
 ⊙ 데이터베이스 불완전 복구

 

 

▣ 오브젝트 권한

 

오브젝트 권한이라는것은 해당 오브젝트에 특정 SQL을 수행할 수 있게 해주는 권한입니다.  오브젝트의 소유자는 해당 오브젝트에 대한 모든 권한을 가지게 되며, 자신의 오브젝트에 대한 특정 권한을 다른 유저에게  부여할 수 있습니다.  아래는 테이블 및 뷰에 부여할 수 있는 오브젝트 권한입니다.

 

오브젝트 권한 종류  테이블  뷰 
 ALTER  O
 DELETE  O
 INSERT  O
 UPDATE  O
 INDEX  O
 SELECT  O

 

 

특징

▣ ALTER - 뷰에는 ALTER를 수행할 수 없으며 변경을 원한다면 재생성 수행 

 

▣ INDEX - 뷰에는 인덱스를 생성할 수 없음

 

 

▣ 데이터베이스 유저 권한 관리

 

시스템 권한 부여 // 오브젝트 권한 부여 
   SQL> GRANT 권한 TO USER; 오브젝트 권한 부여
   SQL> GRANT 권한 ON object_name TO user;
 시스템 권한 제거 // 오브젝트 권한 제거
   SQL> REBOKE 권한 TO USER;
 오브젝트 권한 제거
   SQL> REBOKE 권한 ON object_name TO user;
 기타 명령
 SQL> GRANT 권한 TO user WITH ADMIN OPTION;
 SQL> GRANT 권한 ON object_name TO user WITH GRANT OPTION;


 SQL> GRANT 권한 ON object_name TO PUBLIC;
 SQL> REBOKE 권한 ON object_name FROM PUBLIC;

 

 

예시)

▣ 권한 부여

SQL> GRANT CREATE SESSION TO SCOTT;

SQL> GRANT DELETE ON TEST.EMP TO SCOTT;

 

▣ 권한 제거

SQL> REVOKE CREATE SESSION FROM SCOTT;

SQL> REVOKE DELETE ON TEST.EMP FROM SCOTT;

 

▣ 옵션 명령어

SQL> GRANT SELECT ANY TABLE TO SCOTT WITH ADMIN OPTION;

SQL> GRANT DELETE ON TEST.EMP TO SCOTT WITH GRANT OPTION;

SQL> GRANT DELETE ON TEST.EMP TO PUBLIC;

 

- CREATE SESSION 을 주어 데이터 베이스 접근을 가능하게 합니다.

- DELETE 권한을 주어 TEST 유저 소유의 EMP 테이블을 삭제 할수있도록 합니다.

- GRANT와 REVOKE로 권한을 주기도 뺏기도 할 수 있습니다.

- WITH ADMIN OPTION : 시스템 권한을 부여받은 유저가 다른 유저에게 해당 권한을 재할당할 수 있게 하는 옵션

- WITH GRANT OPTION : 오브젝트 권한을 부여받은 유저가 다른 유저에게 해당 권한을 재할당 할 수 있게 하는 옵션

- PUBLIC : 해당 권한을 모든 데이터 베이스 유저에게 부여하는 옵션

 

 

 

 

 

참고 문헌 : 초보자를 위한 오라클 10g    (권순용 저)

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

table space auto extent 조회  (0) 2012.06.22
DECODE 함수 를 이용한 IF 처리의 효율화  (0) 2012.06.19
[펌]오라클 SQL의 decode함수 사용법  (0) 2012.06.19
oracle 에서 SID 확인  (0) 2012.05.18