본문 바로가기
Study/데이터베이스

오라클 DB 권한(Access Control) 설정

by ✲ 2018. 4. 10.
728x90
반응형

오라클 DB 권한 설정 / 역할 설정 


권한설정 (Access Control) 

DCL (Data Control Language) 

권한 및 역할을 설정하는 언어 

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


권한 부여 (Grant) / 권한 회수 (Revoke) 로 나뉨 (주로 DBA가 설정) 


권한은 주로 시스템 권한객체 권한으로 나뉨 


- CREATE USER 

- DROP USER 

- DROP ANY TABLE 

- BACKUP ANY TABLE 

- QUERY REWRITE

- CREATE SESSION

- CREATE TABLE 

- CREATE VIEW

- CREATE SEQUNECE

- CREATE PROCEDURE 

 

예제) 현재 사용자를 확인하시오 

show user;


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

create user sample identified by test;


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

select * from scott.emp;

grant select on emp to sample;


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

revoke select on emp from sample;



역할 설정 

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

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

사용자가 여러개의 롤을 가지는 것이 가능함. (관리자, 사용자 등) 

 

역할생성 

CREATE ROLE 역할명 ;


역할에 대한 권한설정 

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


사용자에게 역할 부여 

GRANT 역할 TO 사용자명; 



예제) test역할을 생성하시오

CREATE ROLE test;


예제) 접속권한과 테이블 생성권한을 test에 부여하시오

Grant create session, create table to test;


예제) scott , sample에게 test 역할을 지정하시오 

Grant test to scott; 


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

grant select, insert on scott.emp to test; 


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

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


예제) test역할에 emp테이블의 모든 권한을 부여하시오 

grant all on scott.emp to test;


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

revoke all on scott.emp from test; 




728x90
반응형

댓글