쥬로그

오라클 - 권한 설정, 역할 설정 본문

Study/Oracle

오라클 - 권한 설정, 역할 설정

쥬쥬씨 2021. 8. 31. 20:51
반응형

< 권한 설정, 역할 설정 >

* 사용자를 추가하는 데 사용하는 DDL문은 CREATE USER이다.

* 오라클에서는 사용자별로 권한을 설정하는 것 외에 역할을 정의하고 역할별로 권한 설정을 하고, 사용자별로 역할을 부여할 수 있다.


* 권한 설정

♣ 접근 권한(Access Control) 설정

- DCL (Data Control Language)

  : 권한 및 역할 설정 언어

  : 특정 테이블에 대한 CRUD(Create/Retreive/Update/Delete) 권한

-> 권한 부여(GRANT) / 권한 회수(REVOKE)로 나뉨

-> 주로 DBA(DataBase Administrator)가 설정

 

♣ 권한

- 시스템권한 (System. Privileges)

- 객체권한 (Object Privileges)

  > CREATE USER

  > DROP USER

  > DROP ANY TABLE

  > BACKUP ANY TABLE

  > QUERY REWRITE

  > CREATE SESSION

  > CREATE TABLE

  > CREATE VIEW

  > CREATE SEQUENCE

  > CREATE PROCEDURE

 

ex) 1. 현재 사용자를 확인하시오.

-> show user;

    2. sample 사용자를 추가하시오(비밀번호 test)

-> create user sample identified by test;

    3. sample 사용자에게 emp 테이블의 조회 권한을 부여하시오(scott)

-> conn sys as sysdba

-> grant create session to sample; (sample 사용자에게 접근 권한 먼저 부여)

-> conn sample/test

-> select * from scott.emp;

-> grant select on emp to sample;

    4. sample 사용자에게 emp 테이블 조회 권한을 삭제하시오. (scott)

-> revoke select on emp from sample;

  * 부여받은 권한을 확인하고 싶다면 아래와 같이 조회

-> select * from user_tab_privs_made; 

 

 

* 역할 설정

- 개별 테이블에 대한 CRUD 권한을 사용자별로 설정하면 경우의 수가 테이블 수 X 사용자의 수의 조합이 생김

- 이런 문제점을 개선하기 위해서 롤(역할)을 정하고 사용자에게 역할을 부여하는 형태로 사용

- 사용자가 여러 개의 롤을 가지는 것이 가능하다.

 

♣ 역할 생성

  CREATE ROLE 역할명;

 

♣ 역할 권한 설정

  GRANT CRUD ON 테이블명 TO 역할명;

 

♣ 사용자에게 역할 부여

  GRANT 역할 TO 사용자명;

 

ex) 1. test 역할을 생성하시오.

-> conn sts as sysdba

-> create role test;

    2. 접속권한과 테이블 생성권한을 test에 부여하시오.

-> grant create session, create table to test;

    3. scott, sample에게 test 역할을 지정하시오.

-> grant test to scott, sample;

    4. test 역할에 emp 테이블 검색/추가 권한을 부여하시오.

-> grant select, insert on scott.emp to test;

    5. test 역할에 emp 테이블의 ename의 업데이트 권한을 부여하시오.

-> grant update(ename) on scott.emp to test;

    6. test 역할에 emp 테이블의 모든 권한을 부여하시오.

-> grant all on scott.emp to test;

    7. test에 부여된 emp 테이블의 모든 권한을 삭제하시오.

-> revoke all on scott.emp from test;


< Point > 

☆ 역할을 생성할 때는 CREATE ROLE 명령어를 사용한다.

☆ DCL에 해당하는 명령어는 GRANT / REVOKE 명령어가 있다.

    GRANT: 접근 권한 부여

    REVOKE: 접근 권한 삭제

☆ 사용자의 접근 권한을 부여하려면 CREATE SESSION 명령어를 사용한다.


< 요약 > 

* 테이블의 권한 설정

- 사용자 추가/삭제

- 테이블 CRUD 권한 설정(로컬/랜/원격접속)

* 역할설정

- 역할 추가/삭제

- 역할별 CRUD 권한 설정

- 사용자 역할 부여/삭제

 

반응형