권한과 ROLE

MINIMI·2023년 1월 18일
0

ORACLE

목록 보기
11/11
post-thumbnail

1) 개념

  • 사용자 관리 : 사용자의 계정과 암호 설정, 권한 부여
  • 보안을 위한 데이터베이스 관리자
    • 사용자가 데이터 베이스의 객체(테이블, 뷰 등)에 대해 특정 권한을 가질 수 있게 하는 권한이 있다.
    • 다수의 사용자가 공유하는 데이터베이스 정보에 대한 보안 설정을 한다.

2) 시스템 권한

  • 데이터베이스 관리자가 가지고 있는 권한으로 오라클 접속, 테이블, 뷰, 인덱스 등의 생성 권한
  • CREATE USER(사용자 계정 만들기), DROP USER(사용자 계정 삭제)
  • CREATE SESSION(데이터베이스에 접속), CREATE TABLE(테이블 생성), CREATE VIEW(뷰 생성) 등등
  • 유저 생성
CREATE USER C##이름 IDENTIFIED BY 비밀번호;
  • 접속 권한 부여
GRANT CREATE SESSION TO C##이름;
  • 테이블 생성 권한 부여
GRANT CREATE TABLE TO C##이름;
  • WITH ADMIN OPTION

    • 사용자에게 시스템 권한을 부여할 때 사용
    • 권한을 부여받은 사용자는 다른 사용자에게 권한을 지정할 수 있다.
    -- SYSTEM에서 SAMPLE로 SESSION
    GRANT CREATE SESSION TO C##SAMPLE
    WITH ADMIN OPTION;
    
    -- SMPLE 이 SMAPLE2에게 세션 권한 부여 가능
    GRANT CREATE SESSION TO C##SAMPLE2;

3) 객체 권한

  • 사용자가 특정 객체(테이블, 뷰, 시퀀스 등)를 조작하거나 접근할 수 있는 권한
  • DML(SELECT/INSERT/UPDATE/DELETE)
    GRANT 권한 종류 [(컬럼명)] | ALL
    ON 객체명 | ROLE 이름
    TO 사용자명 | PUBLIC
  • WITH GRANT OPTION
    • 사용자가 특정 객체를 조작하거나 접근할 수 있는 권한을 부여 받으면서 그 권한을 다른 사용자에게 다시 부여할 수 있는 권한 옵션.
-- C##EMPLOYEE가 가지고 있는 EMPLOYEE 테이블의 SELECT 권한 부여
GRANT SELECT ON C##EMPLOYEE.EMPLOYEE TO C##SAMPLE
WITH GRANT OPTION;

-- 조회권한을 부여 받았기 때문에 SAMPLE계정에서도 EMPLOYEE 테이블 조회가능

4) 참고사항

  • WITH GRANT OPTION은 REVOKE시 다른 사용자에게도 부여한 권한을 같이 회수
  • WITH ADMIN OPTION은 특정 사용자의 권한만 회수 되고 나머지 다른 사용자에게 부여한 권한은 회수 되지 않는다.

5) ROLE

  • 데이터베이스 ROLE : 사용자마다 일일히 권한을 부여하는 것은 번거롭기 때문에 간편하게 권한을 부여할 수 있는 방법으로 ROLE 제공
  • 여러 개의 권한을 묶어 놓는 것
  • 사용자에게 부여한 권한을 수정하고자 할 때도 그 롤만 수정하면 해당 롤의 권한을 부여 받은 사용자들의 권한이 자동으로 수정 된다.

5-1) 사전 정의 된 롤

  • CONNECT, RESOURCE
SELECT
       GRANTEE
     , PRIVILEGE
  FROM DBA_SYS_PRIVS
 WHERE GRANTEE = 'CONNECT';
 
 -- 권한 확인

5-2) 사용자 정의 롤

  • CREATE ROLE 명령으로 롤 생성
  • 롤 생성은 반드시 DBA 권한이 있는 사용자만 생성 가능
  1. CREATE ROLE 롤이름(롤생성)
  2. GRANT 권한 종류 TO 롤이름(생성된 롤에 권한 추가)
  3. GRANT 롤이름 TO 사용자명(사용자에게 롤 부여)
CREATE ROLE C##MYROLE;
GRANT CREATE VIEW, CREATE TABLE TO C##MYROLE;
GRANT C##MYROLE TO C##SAMPLE;
profile
DREAM STARTER

0개의 댓글