2018. 11. 7. 03:59



사용자 권한 부여


권한 부여 : GRANT

권한 제거 : REVOKE

 

※시스템 권한 - 데이터베이스 접속, 사용자 생성 및 오브젝트 생성 등의 권한

※오브젝트 권한 - 해당 오브젝트에 대한 전반적인 작업을 위한 권한

 

 

시스템 권한

시스템 권한 종류

내용

CREATE USER

데이터 베이스 유저 생성 권한

SELECT ANY TABLE

모든 유저의 테이블 조회 권한

CREATE ANY TABLE

모든 유저의 테이블 생성 권한

CREATE SESSION

데이터베이스 접속 권한

CREATE TABLE

테이블 생성 권한

CREATE VIEW

뷰 생성 권한

CREATE PROCED USER

프로시저 생성 권한

CREATE TRIGGER

트리거 생성 권한

CREATE SEQUENCE

시퀀스 생성 권한

SYSDBA

데이터베이스를 관리하는 최고 권한

SYSOPER

데이터베이스를 관리하는 권한

 

SYSOPER

 데이터베이스 시작, 종료 및 상태 전환

 테이블스페이스 및 컨트롤 파일 백업

 데이터베이스 아카이브 또는 노아카이브 로그 모드 전환

 파라메터 파일 생성

 데이터베이스 완전 복구

 접속 세션 제한

 

 SYSDBA

 ⊙ SYSOPER가 소유한 모든 권한

 데이터베이스 생성 및 삭제

 데이터베이스 불완전 복구

 

오브젝트 권한

권한

TABLE

VIEW

SEQUENCE

PROCEDURE

ALTER

V

 

V

 

DELETE

V

V

 

 

EXECUTE

 

 

 

V

INDEX

V

V

 

 

INSERT

V

 

 

 

REFERNCES

V

 

 

 

SELECT

V

V

V

 

UPDATE

V

V

 

 

 

 

[실습]

먼저 유저를 생성한다.

유저 생성 권한은 기본적으로 SYSTEM계정에만 있다.

 

USER 생성

CREATE USER [USERNAME] IDENTIFIED BY [PASSWORD];

 

다른 유저로 접속

CONN PAYJAY/1234;

 

현재 접속한 유저 확인

SHOW USER;

 

 

ERROR:

ORA-01045: user PAYJAY lacks CREATE SESSION privilege; logon denied

현재 데이터베이스 접근권한이 없어서 ERROR 발생.

 

GRANT [권한1, 권한2, …] ON [객체명] TO [권한을 부여받을 계정];

 

다시 SYSTEM으로 접속.

 

사용자에게 데이터베이스 접근권한 부여

GRANT CREATE SESSION TO PAYJAY;

 

 

 

다른 계정의 객체 접근할 권한 부여

 

SCOTT의 경우

GRANT SELECT ON EMP TO PAYJAY; == 특정 객체를 SELECT 할 권한 부여

GRANT INSERT ON EMP TO PAYJAY; == 특정 객체에 INSERT 할 권한 부여

 

SYSTEM의 경우

GRANT SELECT ON SCOTT.EMP TO PAYJAY; == 특정 객체를 SELECT 할 권한 부여

GRANT INSERT ON SCOTT.EMP TO PAYJAY; == 특정 객체에 INSERT 할 권한 부여

 

본인 계정으로 접속 후 다른 계정의 테이블 SELECT 해보기

SELECT * FROM SCOTT.EMP;

 

다른 계정의 테이블에 INSERT 해보기

INSERT INTO SCOTT.EMP VALUES (

7777,

'USERNAME',

'DEVELOP',

7777,

'2018-11-07',

5000,

700,

40

);

 

 

REVOKE

사용자로부터 권한을 제거하는 명령어.

 

REVOKE [권한1, 권한2, …] ON [객체명] FROM [권한을 제거할 계정];

 

SYSTEM 계정으로 전환

REVOKE SELECT ON SCOTT.EMP FROM PAYJAY;

 

WITH GRANT OPTION

권한을 주면서 권한을 받은 유저에게 해당 권한을 또 다른 유저에게 줄 수 있게 하는 OPTION

 

GRANT [권한1, 권한2…] TO [권한을 부여받을 계정] WITH GRANT OPTION;

 

GRANT CREATE SESSION TO PAYJAY WITH GRANT OPTION;

 

PUBLIC

PUBLIC 키워드는 모든 사용자에게 해당 권한을 부여하는 OPTION

 

GRANT [권한1, 권한2…] ON [객체명] TO PUBLIC;

 

GRANT CREATE SESSION TO PUBLIC; == 모든 사용자에게 데이터베이스 접근 권한 부여

 

ROLE

ROLE이란 여러 권한들을 하나로 묶는 것.

 

롤 생성

CREATE ROLE [권한을 부여받을 롤];

 

롤에 권한 부여

GRANT [권한1, 권한2…] TO [권한을 부여받을 롤];

 

사용자에게 권한을 담은 롤 부여

GRANT [롤 이름] TO PAYJAY;

 

 

CREATE ROLE MYROLE;

GRANT CREATE SESSION, CREATE TABLE TO MYROLE;

GRANT MYROLE TO PAYJAY;

 

 

 

ORACLE에서 제공하는 대표적인 ROLE

CONNECT : 사용자가 데이터베이스에 접속 가능하도록 가장 기본적인 시스템 권한을 그룹화한 것

RESOURCE : 사용자가 객체(TABLE, INDEX, VIEW)를 생성할 수 있도록 시스템 권한을 그룹화한 것

DBA : 시스템 관리에 필요한 모든 권한을 부여할 수 있는 강력한 권한

 

ROLE 삭제

DROP ROLE [삭제할 롤 이름]

 

 

사용자 계정 삭제

SYSTEM으로 접속

DROP USER USERNAME CASCADE;

계정에 관련된 모든 스키마가 삭제됨.

 

 


'Database' 카테고리의 다른 글

[ORACLE] 오라클에서 엑셀파일 IMPORT 하기  (0) 2018.11.12
[Database] Database 개요  (0) 2018.11.06
Posted by PAYJAY