오라클 데이터베이스를 설치하면 기본적으로 생성되는 Role Oracle


오라클 데이터베이스를 생성하면 기본적으로 몇 가지의 Role이 생성 됩니다.
DBA_ROLES 데이터 사전을 통하여 미리 정의된 Role을 조회 할 수 있습니다.
 
SQL>SELECT * FROM DBA_ROLES;

ROLE                             PASSWORD
----------------------    -----------
CONNECT                              NO
RESOURCE                             NO
DBA                                        NO
SELECT_CATALOG_ROLE        NO
EXECUTE_CATALOG_ROLE      NO
DELETE_CATALOG_ROLE         NO
EXP_FULL_DATABASE              NO
IMP_FULL_DATABASE              NO
....

이 외에도 많이 ROLE이 존재합니다.
그 중에서 가장 많이 사용하는 3가지만 설명 하겠습니다.

 

 

==================================================================================================
◈ CONNECT
 
- 오라클에 접속 할 수 있는 세션 생성 및 테이블을 생성하거나 조회 할 수 있는  가장 일반적인 권한들로 이루어져 있습니다.

- CONNECT Role이 없으면 유저를 생성하고서도 Oracle에 접속 할 수가 없습니다.

- 아래의 명령어로 CONNECT Role이 어떤 권한으로 이루어져 있는지 확인 할 수 있습니다.


 SQL>SELECT grantee, privilege
         FROM DBA_SYS_PRIVS
         WHERE grantee = ’CONNECT’;

GRANTEE     PRIVILEGE
----------- ---------------------
CONNECT     ALTER SESSION
CONNECT     CREATE CLUSTER
CONNECT     CREATE DATABASE LINK
CONNECT     CREATE SEQUENCE
CONNECT     CREATE SESSION
CONNECT     CREATE SYNONYM
CONNECT     CREATE TABLE
CONNECT     CREATE VIEW

==================================================================================================

 


==================================================================================================
◈ RESOURCE

 - Store Procedure나 Trigger와 같은 PL/SQL을 사용할 수 있는 권한 들로 이루어져 있습니다.

 - PL/SQL을 사용하려면 RESOURCE Role을 부여해야 합니다. 
 - 유저를 생성하면 일반적으로 CONNECT, RESOURCE롤을 부여 합니다.

SQL>SELECT grantee, privilege
        FROM DBA_SYS_PRIVS
        WHERE grantee = ’RESOURCE’;
 ==================================================================================================

 


==================================================================================================
◈ DBA

 - 모든 시스템 권한이 부여된 Role입니다.

 - DBA Role은 데이터베이스 관리자에게만 부여해야 합니다. 

 ==================================================================================================


 
 
  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================ 
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^ 
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^
 


롤(Role) Oracle

================================================================================================
ROLE 이란 사용자에게 허가할 수 있는 권한들의 집합 이라고 할 수 있습니다.

 - ROLE을 이용하면 권한 부여와 회수를 쉽게 할 수 있습니다.
 - ROLE은 Create Role권한을 가진 User에 의해서 생성 됩니다. 
 - 한 사용자가 여러개의 ROLL을 ACCESS할 수 있고,  여러 사용자에게 같은 ROLE을 부여할 수 있습니다.
 - 시스템 권한을 부여하고, 취소할 때와 동일한 명령을 사용하여 사용자에게 부여하고, 취소 합니다.
 - 사용자는 ROLE에 ROLE을 부여할 수 있습니다.
 - 오라클 데이터베이스를 설치하면 기본적으로 CONNECT, RESOURCE, DBA ROLE이 제공 됩니다.
================================================================================================
 

아래의 그림처럼 DBA가 유저들에게 권한을 부여할 때 일일이 권한 하나하나씩을 지정을 한다면
몹시 불편할 것 입니다. DBA가 USER의 역할에 맞도록 Role을 생성하여서 Role만 유저에게 지정을
한다면 보다 효율적으 로 유저들의 권한을 관리 할 수 있습니다.



 
 

ROLE의 생성

 문법
  
  CREATE ROLE role_name

ROLE의  부여 순서

 ① ROLE의 생성  :  CREATE ROLE manager
 ② ROLE에 권한 부여 : GRANT create session, create table TO manager
 ③ ROLE을 사용자 또는 ROLE에게 부여 : GRANT manager TO scott, test;
 
     =======================================================
     -- role을 생성 합니다. 
     SQL> CREATE ROLE manager

     
     -- role에 권한을 부여 합니다. 
     SQL>GRANT create session, create table TO manager

     
     -- 권한이 부여된 role을 user나 role에 부여 합니다. 
     SQL>GRANT manager TO scott, test; 
     =======================================================

 


 
 
  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================ 
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^ 
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^


Object Privileges(객체 권한) Oracle


 ◈ Object Privileges(객체 권한)


객체 권한은 유저가 소유하고 있는 특정한 객체를 다른 사용자들이 엑세스 하거나 조작 할 수 있게 하기 위해서 생성을 합니다.

 - 테이블이나 뷰, 시퀀스, 프로시저, 함수, 또는 패키지 중 지정된 한 오브젝트에 특별한 작업을 
   수행 할 수 있게 합니다.

 - Object 소유자는 다른 사용자에게 특정 Object Privileges를 부여 할 수 있습니다.

 - PUBLIC으로 권한을 부여하면 회수할 때도 PUBLIC으로 해야 합니다.

 - Object Privileges는 Object Type에 따라서 다릅니다.

 - 기본적으로 소유한 오브젝트에 대한 모든 권한이 자동적으로 획득됩니다

 - WITH GRANT OPTION 옵션은 롤에 권한을 부여할 때는 사용할 수 없습니다


 

*오브젝트에 따른 Privileges



위의 표에서 맨 왼쪽에 있는 ALTER, DELETE, EXECUTE.. 등등은 object_privilege란에 오면 되고,
맨 윗줄에 있는 테이블, 뷰, 시퀀스, 프로시져 등등은 ON 다음에 있는 object에 입력하면 됩니다.

[Syntax]

GRANT object_privilege [column]
ON object
TO { user [.user] | role | PUBLIC }
[WITH GRANT OPTION]

  - object_privilege : 부여할 객체 권한의 이름

  - object : 객체명

  - user, role : 부여할 사용자 이름과 다른 데이터 베이스 역할 이름

  - PUBLIC : 오브젝 권한, 또는 데이터베이스 역할을 모든 사용자에게 부여할 수 있습니다.

  - WITH GRANT OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로
                               부여할 수 있게 됩니다. Object 권한 부여 문법

 

오브젝트 권한 부여 예제
 
SQL>GRANT SELECT, INSERT
        ON emp
        TO scott
        WITH  GRANT  OPTION.

        권한이 부여되었습니다.

*설명 : scott 사용자에게 emp테이블을 SELECT, INSERT할 수 있는 권한을 부여했습니다.
          scott 사용자도 다른 사용자에게 그 권한을 부여 할 수 있습니다.
 

Object 권한의 박탈

[Syntax]

REVOKE { privilege [.privilege...] | ALL}
ON object
FROM { user [.user] | user | PUBLIC }
[ CASCADE CONSTRAINTS ]

  - 객체 권한의 철회는 그 권한을 부여한 부여자만이 수행할수 있습니다.

  - CASCADE CONSTRAINTS : 이 명령어의 사용으로 REFERENCES객체 권한에서 사용된 
     참조 무결성 제한을 같이 삭제 할 수 있습니다.

  - 으로 객체 권한을 부여한 사용자의 객체 권한을 철회하면, 권한을
    부여받은 사용자가 부여한 객체 권한 또한 같이 철회되는 종속철회가 발생합니다.WITH GRANT OPTION
 


오브젝 권한 철회 예제

SQL>REVOKE SELECT, INSERT
         ON emp
         FROM scott


*설명 : scott 사용자에게부여한 emp테이블에 대한 SELECT, INSERT권한이 회수 됩니다..
         만약 scott사용자가 다른 사용자에게 SELECT, INSERT권한을 부여했으면..
         그 권한들도 같이 철회가 됩니다.
 
 

WITH GRANT OPTION을 사용하여 객체 권한 취소
 


 
  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================ 
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^ 
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^


1 2 3 4 5 6 7 8 9 10 다음