본문 바로가기
Dev/Oracle

[Oracle] 사용자, 권한, 롤

by 흰바다제비 2022. 6. 8.
728x90
  • 사용자

사용자 생성

CREATE USER USER_NAME
IDENTIFIED BY PASSWORD
[DEFAULT TABLESPACE TABLESPACE_NAME]

사용자 정보 조회

SELECT * FROM ALL_USERS WHERE USERNAME = 'USER_NAME';
SELECT * FROM DBA_USERS WHERE USERNAME = 'USER_NAME';
SELECT * FROM DBA_OBJECTS WHERE USERNAME = 'USER_NAME';

사용자 정보 변경

ALTER USER USER_NAME IDENTIFIED BY PASSWORD;

사용자 삭제

DROP USER USER_NAME [CASCADE];

CASCADE : 사용자와 객체 모두 삭제할 수 있다.

 


  • 권한
  1. 시스템 권한

데이터베이스 관리 권한이 있는 사용자가 부여할 수 있는 권한. 사용자 생성, 정보 수정 및 삭제, 데이터 베이스 접근 등 데이터베이스의 여러 자원과 객체 생성 및 관리 등의 권한을 포함한다.

시스템 권한 부여

GRANT [SYSTEM_PRIVILEGES] TO [USER_NAME | ROLE_NAME | PUBLIC] [WITH ADMIN OPTION];

WITH ADMIN OPTION : 권한을 부여받으면, 부여받은 권한을 다른 사용자에 부여할 수 있다.

시스템 권한 취소

REVOKE [SYSTEM_PRIVILEGES] FROM [USER_NAME | ROLE_NAME | PUBLIC];

2. 객체 권한

특정 사용자가 생성한 테이블, 인덱스, 뷰, 시퀀스 등과 관련된 권한.

객체 권한 부여

GRANT [OBJECT_PRIVILEGES|ALL PRIVILEGES] ON [SCHEMA.OBJECT_NAME] TO [USER_NAME|ROLE_NAME|PUBLIC] [WITH GRANT OPTION]

PUBLIC : 모든 사용자 대상

WITH GRANT OPTION : 권한을 부여 받은 사용자는 부여받은 권한을 다른 사용자(역할)에 부여할 수 있다.

객체 권한 취소

REVOKE [PRIVILEGE|ALL PRIVILEGES] ON [SCHEMA.OBJECT_NAME] FROM [USER_NAME|ROLE_NAME|PUBLIC] [CASCADE CONSTRAINTS]

CASCADE CONSTRAINTS : 참조 같이 삭제

 


  • 롤 관리
  1. 사전 정의 롤

(ORACLE 10g 기준)

CONNECT 롤에 포함된 권한

SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='CONNECT';

RESOURCE 롤에 포함된 권한

SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='RESOURCE';

--> CREATE VIEW 권한과 CREATE SYNONYM 시스템 권한이 필요한 경우에는 다음과 같이 직접 권한을 부여해주어야 한다.

GRANT CREATE VIEW, CREATE SYNONYM TO SCOTT;

2. 사용자 정의 롤 (USER ROLES)

-- ROLE 생성
CREATE ROLE [ROLE_NAME];

-- ROLE에 권한 포함시키기
GRANT [PRIVILEGE] TO [ROLE_NAME];

-- 사용자에게 생성한 ROLE 부여
GRANT [ROLE_NAME] TO [USER_NAME];

-- ROLE 취소
REVOKE [ROLE_NAME] FROM [USER_NAME];

-- ROLE 삭제
DROP ROLE [ROLE_NAME];

 

예제

CONN /AS SYSDBA

CREATE ROLE EXAMPLE;

GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE SYNONYM, CREATE SESSION TO EXAMPLE;

GRANT EXAMPLE TO ROLE_EX1;

 

728x90

'Dev > Oracle' 카테고리의 다른 글

[Oracle] Oracle Lock Test  (0) 2022.06.10
[Oracle] HWM (High Water Mark)  (0) 2022.06.09
[Oracle] PCTFREE, PCTUSED  (0) 2022.06.09
[Oracle] 아카이브 모드, 리두로그  (0) 2022.06.07
[Oracle] DECODE, CASE  (0) 2022.06.06

댓글