Rdbms/Database

[Database] Grant

hikr90 2025. 1. 10. 00:04

# 권한

권한이란 특정 쿼리문을 수행할 수 있는 권리를 뜻한다.

 

종류

- system 관련 권한은 DB에 영향이 미치는 권한이며, 객체 권한은 객체를 사용할 수 있는 권한을 의미한다.

권한
설명
connect
DB에 접속할 수 있는 권한
alter session
환경 변수를 변경할 수 있는 권한
unlimited tablespace
DB안에 있는 모든 tablespace를 사용할 수 있는 권한
resource
객체 및 데이터 조작 권한
dba
테이블에 대한 접근 권한

 

권한 부여

- 직접 부여와 role이라는 덩어리의 형태로 부여하는 방식 두가지가 존재한다.

- role이란, DB엔지니어가 특정 용도를 위해서 남겨둔 권한 묶음을 뜻한다.

- 기본적으로는 유저 생성 시 create session, create table 두가지의 권한이 필요하다.

grant 권한 명칭 to 권한 부여 대상;

권한 조회

사용 영역
쿼리문
설명
user
select * from session_privs;
받은 권한 (role/직접)을 확인
select * from user_sys_privs;
DB로부터 직접 받은 시스템 권한 확인
select * from session_roles;
부여받은 role에 대해서 확인
select * from role_sys_privs;
DB로부터 받은 role안의 시스템 권한 확인
select * from role_tab_privs;
소유자로부터 받은 권한과 부여한 객체 권한 확인
select * from role_tab_privs;
내가 받은 role안에 객체 권한 확인
select * from dba_sys_privs where grantee = "유저명";
권한이 부여되었는지 확인 (유저명은 대문자로 검색)
DB
select * from dba_tab_privs;
시스템 권한을 어떤 유저한테 부여했는지 확인
select * from dba_roles;
DB에 생성된 role에대한 정보 확인
select * from dba_role_privs;
role을 어떤 유저에게 부여했는지 확인
select * from dba_ts_quotas;
DB가 어떤 유저한테 테이블 사용을 허락했는지 확인

 

권한 회수

revoke 권한명칭 from 권한 회수할 테이블 명칭;