✔ 데이터베이스 롤 권한 제어란?
롤은 사용자에게 보다 효율적으로 권한을 부여할 수 있도록 여러 개의 권한을 묶어 놓은 것 입니다.
데이터베이스의 접속 권한(CREATE SESSION), 테이블 생성 권한(CREATE TABLE), 테이블 수정(UPDATE), 삭제(DELETE), 조회(SELECT) 등과 같은 권한은 사용자에게 기본적으로 필요한 권한들인데 사용자를 생성할 때마다 일일이 이러한 권한을 부여하는 것은 번거습니다.
이 때문에 다수의 사용자에게 공통적으로 필요한 권한들을 롤에 하나의 그룹으로 묶어두고 사용자에게는 특정 롤에 대한 권한 부여를 함으로서 간단하게 권한 부여를 할 수 있도록 합니다.
사전에 정의된 롤 의 종류 | |
CONNECT 롤 | • 사전정의 8개 권한 ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW |
RESOURCE 롤 | • 사용자가 객체(테이블, 뷰, 인덱스)를 생성할 수 있도록 하기 위해서 시스템 권한을 묶어 놓았다. CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER |
DBA 롤 | • 시스템 자원을 무제한적으로 사용하며 시스템 관리에 필요한 모든 권한을 부여할 수 있는 강력한 권한을 보유한 롤이다. |
사용자 정의된 롤 의 종류 | |
사용자는 CREATE ROLE 명령어로 다음 형식에 따라 롤을 생성해야 한다. |
-- 형식 CREATE ROLE ROLE_NAME; GRANT PRIVILEGE_NAME TO ROLE_NAME; |
✔ System 계정에서 사용자 생성 후 권한 부여하기!
처음에 SYSTEM 계정에서 USER04를 생성하였습니다.
이후 CMD 가서 USER04 와 비밀번호 PWD로 로그인을 하려고 했는데
C:\Users\user2>SQLPLUS USER04/PWD
SQL*Plus: Release 11.2.0.2.0 Production on 수 12월 21 16:09:48 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR:
ORA-01045: user USER04 lacks CREATE SESSION privilege; logon denied
이렇게 CONNECT가 거부되었습니다.
이런 경우에는
GRANT CONNECT와 RESOURCE를 USER04에게 부여하였습니다.
이렇게 한 후 CMD에서 다시 로그인을 하니,
CONNECT가 성공적으로 되었습니다!!!
✔ 사용자 롤 정의하기
우선 사용자 정의된 롤의 이름을 MROLE로 지정 후 CREATE했습니다.
그 후, MROLL에게 어떤 권한을 줄까 생각 후 지정합니다.
그다음에 새로운 사용자를 만든 후, MROLL을 부여하였습니다.
이렇게 한다면 다른 사용자들도 저런 ROLE을 줄때 복잡하게 여러개를 만들어서 권한을 주게 되면
빠진 권한이 있을수 있으니, 처음부터 딱! 난 무슨 무슨 권한을 줄꺼야를 정해놓고
그 정해 놓은 권한을 부여하면 훨씬 간단해집니다.
✔ 롤 회수하기
-- 형식
REVOKE ROLE_NAME FROM USER_NAME;
그럼 지금까지 롤의 권한 부여 방법 및 회수 방법에 대한 설명이였습니다.
감사합니다.
<지난시간 복습>
✔ 권환(Privilages)
- 시스템 권한 : CREATE USER, CREATE TABLE, CREATE VIEW... 80개
- 객체 권한 : 객체 (TABLE, VIEW, SEQUENCE...) 에 접근 (DML) 여부
다른말고 스키마의 객체에 접근을 제어하기 위함입니다.
✔ 역할(ROLE) : 권한의 집합체 -> 아직 안배웠습니다.
✔ 사용자 생성하기
CREATE USER USER_NAME IDENTIFIED BY PASSWORD;
CREATE USER USER01 IDENTIFIED BY PWD;
✔ 권한 부여
GRANT CREATE SESSION, CREATE TABLE TO USER01;
✔ 권한 회수
REVOKE CREATE TABLE FROM USER01;
✔ 객체 권한
-스키마(SCHEMA) : 사용자가 가지고 있는 모든 객체를 스키마라고 한다.
(객체를 소유한 사용자명)
'주니어 기초 코딩공부 > JAVA_programmers_코딩테스트' 카테고리의 다른 글
옹알이 (1)_programmers_lev00 (0) | 2022.12.27 |
---|---|
등수 매기기_programmers_lev00 (0) | 2022.12.23 |
치킨 쿠폰_programmers_lev00 (0) | 2022.12.20 |
문자열 밀기_programmers_lev00 (0) | 2022.12.20 |
로그인 성공?_programmers_lev00 (0) | 2022.12.20 |