OracleSQL 핵심정리10 - Oracle DB 권한
시스템 권한 및 관리
- 사용자 생성시 오라클 DB에 접근이 가능하도록 권한을 부여받아야 함
시스템 권한: 사용자 생성/제거, db접근 및 객체를 생성할 수 있는 권한 등 주로 DBA에 의해 부여- 주요 DBA 시스템 권한
CREATE USER- 사용자 생성DROP USER- 사용자 삭제DROP ANY TABLE- 테이블 삭제QUERY REWRITE- 함수 기반 인덱스 생성BACKUP ANY TABLE- 테이블 백업
- 사용자를 위한 시스템 권한
CREATE SESSION- 세션 시작CREATE TABLE- 테이블 생성CREATE VIEW- 뷰 생성CREATE SEQUENCE- 시퀀스 생성CREATE PROCEDURE- 프로시저 생성
- 권한부여
- GRANT명령을 사용하여 시스템 권한을 할당
- ex)
GRANT 시스템 권한 TO 유저명
- 고급 옵션
WITH ADMIN OPTION: 시스템 권한을 이 옵션과 함께 부여하면 관리자가 아니여도 부여받은 시스템 권한을 다른 사용자에게 부여 가능한 권한도 함께 부여
객체 권한
객체 권한: 특정 객체에 조작할 수 있는 권한. 객체 소유자는 객체에 대한 모든 권한을 가짐- 객체 권한 부여
- ON에 접근 허용할 객체명을 입력하여 객체권한을 부여
- ex)
GRANT 객체권한 ON 객체명 TO 유저명
스키마: 객체를 소유한 사용자명을 의미. 객체명 앞에 사용자명을 기술하여 사용- 부여된 객체 권한 조회
- ex)
SELECT*FROM USER_TAB_PRIVS_MADE
- ex)
- 부여한 객체 권한을 철회
- ex)
REVOKE 객체권한 ON 객체명 FROM 유저명
- ex)
WITH GRANT OPTION: 객체 권한을 이 옵션과 함께 부여하면객체를 접근할 권한을 부여받음과 동시에 다른 사용자에게 그 권한을 부여 가능
롤을 사용한 권한 부여
롤: 여러 개의 권한을 묶어 놓아서 사용자에게 효율적으로 권한을 부여하는 것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 롤: 소유한 데이터베이스 객체를 관리하고 사용자들을 작성하고 변경하고 제거할 수 있도록 하는 모든 권한을 부여하는 롤- 롤 관리 및 권한 부여
- ex)
CREATE ROLE 롤명- 롤 생성 - ex)
GRANT 권한명 [ON 객체명] TO 롤명- GRANT를 호출하여 롤에 권한을 포함시킴 - ex)
SELECT * FROM USER_ROLE_PRIVS- 현재 사용자에게 부여된 롤을 확인 - ex)
DROP ROLE 롤명 FROM 유저명- 유저에게 부여한 롤 권한을 회수(제거)
- ex)
동의어
동의어: 데이터베이스 객체에 대한 별명(대체 이름) 을 의미- 동의어 관리
- ex)
CREATE [PUBLIC] SYNONYM 동의어명 FOR 유저명.객체명- 동의어 생성- SYNONYM을 사용하여 요약할 PUBLIC 동의어명을 지정해줌
- ex)
DROP [PUBLIC] SYNONYM 동의어명- 동의어 제거
- ex)
- 관리자로부터 동의어 생성 권한을 부여받은 후에 동의어 생성 가능
- 비공개 동의어는 동의어를 생성한 사용자만이 접근할 수 있음
This post is licensed under CC BY 4.0 by the author.