728x90
사용자 권한과 롤
오라클에서 사용자의 권한은 약 130여가지나 된다. 여기에서는 가장 많이 사용하는 대표적인 몇가지만을 언급하도록 하겠다.
1. 데이터베이스 관리자가 가지는 시스템 권한의 종류
시스템 권한 | 기능 |
CREATE USER | 새롭게 사용자를 생성하는 권한 |
DROP USER | 사용자를 삭제하는 권한 |
DROP ANY TABLE | 임의의 테이블을 삭제할 수 있는 권한 |
QUERY REWRITE | 질의 재작성을 할 수 있는 권한 |
BACKUP ANY TABLE | 임의의 테이블을 백업할 수 있는 권한 |
2. 일반 사용자가 데이터베이스를 관리하는 권한
시스템 권한 | 기능 |
CREATE SESSION | 데이터베이스에 접속할 수 있는 권한 |
CREATE TABLE | 사용자 스키마에서 테이블을 생성할 수 있는 권한 |
CREATE VIEW | 사용자 스키마에서 뷰를 생성할 수 있는 권한 |
CREATE SEQUENCE | 사용자 스키마에서 시퀀스를 생성할 수 있는 권한 |
CREATE PROCEDURE | 사용자 스키마에서 함수를 생성할 수 있는 권한 |
3. 일반 유저에서 권한주기
GRANT 권한의 종류 TO 유저명 [WITH ADMIN OPTION] |
WITH ADMIN OPTION 을 명시하면 권한을 받은 유저가 자기가 갖고 있는 권한을 다른 유저에게 줄수 있다.
예] 유저 PARK에게 데이터베이스에 접속할 수 있는 권한 주기. GRANT CREATE SESSION TO PARK |
4. 객체 권한 주기
객체의 권한이란 DML문, 즉 SELECT, INSERT, UPDATE, DELETE등을 사용할 수 있는 권한을 말한다.
GRANT 권한의 종류 ON 테이블명 TO 유저명 [WITH ADMIN OPTION] |
ON 뒤에는 테이블명이나 뷰명이 올 수 있다.
예] PARK에서 SCORE 테이블을 SELECT 할 수 있는 권한 주기. GRANT SELECT ON SCORE TO PARK |
5. 사용자에게 부여된 권한 조회
먼저 특정 사용자로 로그인 한후 다음과 같은 명령으로 권한을 조회할 수 있다.
명령 | 기능 |
SELECT * FROM user_tab_privs_made | 현재 사용자가 다른 사용자에게 부여한 권한 정보 |
SELECT * FROM user_tab_privs_recd | 자신에게 부여된 사용자 권한 조회. |
6. 사용자의 권한 제거
REVOKE 권한의 종류 ON 테이블명 FROM 유저명 |
7. 롤
롤은 사용자에게 보다 효율적으로 권한을 부여하기 위한 하나의 방법이다. 롤은 시스템이 기본적으로 제공하고 있는 것도 있지만 사용자가 롤을 만들어 운영할 수도 있다.
1) 시스텡에서 제공해주는 롤
롤의 종류 | 기능 |
CONNECT 롤 | 사용자가 데이터베이스에 접속가능하도록 하기 위하여 필요한 가장 기본적인 시스템 권한을 묶어 놓았다. (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 롤 | 사용자들이 소유한 데이터베이스객체를 관리하고 사용자들을 작성하고 변경, 삭제하는 모든 권한을 가진다. |
2) 롤 부여하기
GRANT 롤,롤 TO 유저명 |
예] PARK 에게 데이터베이스에 접근하고 테이블을 만들 수 있는 권한을 부여하자. GRANT CONNECT, RESOURCE TO PARK |
3) 롤 회수
REVOKE 롤이름 FROM 유저명 |
예] PARK에게 부여된 권한을 제거하자. REVOKE CONNECT, RESOURCE FROM PARK |
4) 사용자 롤 생성과 제거
롤 생성 | CREATE ROLE 롤이름 |
롤에 권한 부여 | GRANT 명령 ON 테이블명 TO 롤이름 |
롤 조회 | SELECT * FROM user_role_privs; SELECT * FROM role_tab_privs |
롤 제거 | REVOKE 롤이름 FROM 유저명 |
728x90
'낙서장 > SQL' 카테고리의 다른 글
오라클 Dictionary (0) | 2021.08.08 |
---|---|
sql*plus 간단한 명령어 (0) | 2021.08.08 |
데이타 타입 (0) | 2021.08.08 |
오라클 10g 시작 connect 권한 부여 등.. (0) | 2021.08.08 |
SQL 이란 (0) | 2021.08.08 |
댓글