지난 포스팅에서 GRANT와 REVOKE 명령어를 통해 사용자에게 권한을 부여하는 방법에 대해서 다루어 보았다. 이번 포스팅에서는 ROLE에 대해서 다루어 볼것이다.
DB를 이용하는 사용자가 적다면 하나씩 권한을 부여할 수 있겠지만 사용자가 많다면 일일이 권한을 부여하는 것은 부담이 된다. 그래서 사용자 그룹을 만들어 그룹별로 권한을 부여하면 효율적이다. 여기서 사용자의 그룹이 롤( Role)이 된다. 롤은 데이터베이스 관리자만 생성할 수 있다.
1. 롤 생성
CREATE ROLE <롤이름>
CREATE ROLE employee;
CREATE ROLE manager;
이렇게 롤을 만든 다음, 사용자에게 권한을 부여할 때 DML이나 REFERENCES 같은 객체에 대한 권한을 부여하는 것이 아니라 ROLE을 부여하는 것이다.
GRANT employee TO kim,lee;
GRANT manager TO chang,choi;
2. 롤 권한 부여
객체에 대한 권한은 롤에 부여된다.
GRANT select ON student TO employee;
GRANT select, insert, update ON student TO manager;
3. 롤 권한 회수
물론 이렇게 롤에 부여된 권한도 REVOKE를 통해 회수된다.
REVOKE select ON student FROM employee;
REVOKE select, insert, update ON student FROM employee;
4. 사용자 배제
REVOKE는 롤에서 사용자를 배제할 때도 사용된다.
REVOKE manager FROM choi;
5. 롤 삭제
롤은 DROP을 통해 삭제된다.
DROP ROLE manager;
Oracle에서의 롤 생성 및 관리
출처 입력
오라클에서는 권한의 종류만 200여개가 넘기 때문에 롤 사용이 필수적이다.
CONNECT 롤은 사용자에게 SESSION을 만들 수 있는 권한을 담은 롤이다. 그러므로 CONNECT 롤을 부여받은 사용자는 DB안에 본인의 세션을 생성 가능하므로 '접속'이 가능해진다.
RESOURCE 롤은 TABLE, TRIGGER, PROCEDURE와 같은 객체를 생성하고 관리할 수 있는 권한을 담은 롤이다. 그러므로 RESOURCE 롤을 부여 받은 사용자는 객체를 생성하고 관리할 수 있다.
DBA 롤은 시스템 및 객체 관리에 대한 모든 권한을 갖고 있는 롤이다. DBA 롤을 부여받은 사용자는 데이터베이스 관리자 권한을 획득한다.
예시
GRANT connect, resource TO park;
*connect와 resource롤을 park에게 부여한다.
CREATE ROLE stu_role;
*롤 생성은 DBA나 DBA권한을 받은 사용자만 가능하다.
GRANT select, insert ON lee.student TO stu_role;
*student 테이블의 소유자가 lee이면 lee.student라 표현한다.
GRANT stu_role TO park;
*park에게 stu_role을 부여한다.
REVOKE stu_role FROM park;
*park을 stu_role에서 배제한다.
참고자료
Understanding of Database
저자 : 이상구, 장재영, 김한준, 정재헌
출판 : 이한미디어발매2012.08.20.
'DB > DB Basic' 카테고리의 다른 글
[DB] 시스템 권한 및 뷰(View) [Oracle] (0) | 2021.06.25 |
---|---|
[DB] 개념적 설계 모델 (0) | 2021.06.25 |
[DB] 데이터베이스 권한(GRANT, REVOKE) [Oracle] (0) | 2021.06.25 |
[DB] 무결성 (Integrity)이란? (0) | 2021.06.25 |
[DB] SQL3 (Oracle) (0) | 2021.06.25 |