usop 2022. 12. 12. 17:16

롤 개념

  - 다수 사용자와 다양한 권한을 효과적으로 관리하기 위하여 서로 관련된 권한을 그룹화한 개념

  - 일반 사용자가 데이터베이스를 이용하기 위한 공통적인 권한(데이터베이스 접속권한, 테이블 생성, 수정,

      삭제, 조회 권한, 뷰 생성 권한)을 그룹화

  -  이러한 권한을 그룹화하여 롤로 정의해서 사용자에게 롤에 대한 접근 권한을 부여하면 권한 관리를 효과적으로 함

 

 

롤 부여

   - 활성화 또는 비활성화를 통한 일시적 권한 부여 철회 가능

   - 암호 부여 가능

   - 사용자 또는 다른 롤에 대한 접근 권한 부여 및 철회 가능

   - 자신에 대한 롤 부여나 순환적인 부여는 불가능

   - 롤은 특정 소유자나 특정 객체에 속하지 않음

 

 

 사전에 정의된 롤

    -  사용자 접속, 자원 생성, DBA 등과 같이 공통적으로 사용되는 권한은 사전에 롤로 정의하여 제공됨

    -  사전에 정의된 롤도 부여, 철회 가능

 

 

 사전에 정의된 롤의 종류

   - CONNECT 롤 : 사용자가 데이터베이스에 접속하여 세션을 생성할 수 있는 권한

                               테이블 또는 뷰와 같은 객체를 생성할 수 있는 권한

   - RESOURCE 롤 : 사용자에게 자신의 테이블, 시퀀스, 프로시져, 트리거 객체 생성 할 수 있는 권한

                                 사용자 생성시 CONNECT 롤과 RESOURCE 롤을 부여

   - DBA 롤 : 시스템 자원의 무제한적인 사용이나 시스템 관리에 필요한 모든 권한 

                     DBA 권한을 다른 사람에게 부여할 수 있음

                     모든 사용자 소유의 CONNECT, RESOURCE, DBA 권한을 포함한 모든 권한을 부여 및 철회 가능

 

 

 롤 생성

    - CREATE ROLE 명령문으로 생성, 롤에 암호 부여 가능, 롤 이름은 사용자나 다른 롤과 중복될 수 없음

롤 생성(사용법)

 

 

롤 생성 예시 (hr_clerk 와 hr_mgr 롤 생성)

CREATE ROLE hr_clerk;

--hr_mgr 롤 생성 및 암호 지정
CREATE ROLE hr_mgr
IDENTIFIED BY manager;

 

 

롤 권한 부여

 

    롤에 시스템 권한이나 객체 권한 또는 다른 롤을 부여 가능 , GRANT 명령문 사용

   롤 권한 부여 예시

--hr_mgr 롤에 create session 시스템 권한을 부여하라
grant create session TO hr_mgr;

--scott 사용자의 student 테이블의 모든 칼럼에 대한 select,insert,delete 객체 권한을 hr_clerk에 부여하라
grant select, insert, delete ON scott.student TO hr_clerk;

 

 

롤에 롤 부여

    롤은 사용자 또는 다른 롤에게 롤 부여 가능

 

    롤에 롤 부여 예시

-- 롤에 롤 권한 부여
grant hr_clerk TO hr_mgr;

 

 

롤 조회

    롤에 부여한 시스템 권한 조회

-- 롤에 부여한 시스템 권한 조회
select * from role_sys_privs;

롤에 부여한 시스템 권한 조회