쥬로그
오라클 - 권한 설정, 역할 설정 본문
< 권한 설정, 역할 설정 >
* 사용자를 추가하는 데 사용하는 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 권한 설정
- 사용자 역할 부여/삭제
'Study > Oracle' 카테고리의 다른 글
오라클 - 메타데이터, 캐릭터셋 (0) | 2021.08.31 |
---|---|
오라클 - 검색 성능 개선을 위한 INDEX (0) | 2021.08.31 |
오라클 - 스키마 수정, 삭제 (0) | 2021.08.31 |
오라클 - 중복정보 수정, 정규형, 참조무결성 (0) | 2021.08.31 |
오라클 - 스키마 정의, 자료형, 제약조건 (2) (0) | 2021.08.31 |