프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 11.2.0.4


방법 : 오라클 유저에게 기본적으로 주는 롤 connect와 resource 는?

오라클에서 새로운 유저를 만들고 보통 그유저에게 기본적인 롤 2가지를 부여함

connect롤과 resource 롤임

이 두가지 롤에 어떤 권한이 들어있는지 확인하는 글임



먼저 bokgu_user에게 부여된 롤 확인

1
2
3
4
5
6
7
8
9
10
SQL> conn / as sysdba
SQL> 
select * from dba_role_privs
where GRANTEE = 'BOKGU_USER'
/
 
GRANTEE                GRANTED_ROLE              ADM DEF
------------------------------ ------------------------------ --- ---
BOKGU_USER               RESOURCE               NO  YES
BOKGU_USER               CONNECT                  NO  YES



1. CONNECT 롤에 포함된 권한

1
2
3
4
5
6
7
8
SQL> 
select * from role_sys_privs
where role='CONNECT'
/
 
ROLE                   PRIVILEGE                ADM
------------------------------ ---------------------------------------- ---
CONNECT                CREATE SESSION                NO

CREATE SESSION 권한이 있음

이 권한이 없으면 해당 유저로 접속이 되지 않음


CONNECT 롤 회수 후 접속 확인

1
2
3
4
5
6
7
8
9
10
SQL> revoke connect from bokgu_user;
 
Revoke succeeded.
 
SQL> conn bokgu_user/bokgu_user
ERROR:
ORA-01045: user BOKGU_USER lacks CREATE SESSION privilege; logon denied
 
 
Warning: You are no longer connected to ORACLE.

접속이 되지 않음



CONNECT 롤 부여 후 다시 확인

1
2
3
4
5
6
7
SQL> conn / as sysdba
SQL> grant connect to bokgu_user;
 
Grant succeeded.
 
SQL> conn bokgu_user/bokgu_user
Connected.

정상 접속됨



2. RESOURCE 롤에 포함된 권한

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SQL> 
select * from role_sys_privs
where role='RESOURCE'
/
 
ROLE                   PRIVILEGE                ADM
------------------------------ ---------------------------------------- ---
RESOURCE               CREATE TRIGGER                NO
RESOURCE               CREATE SEQUENCE                NO
RESOURCE               CREATE TYPE                NO
RESOURCE               CREATE PROCEDURE             NO
RESOURCE               CREATE CLUSTER                NO
RESOURCE               CREATE OPERATOR                NO
RESOURCE               CREATE INDEXTYPE             NO
RESOURCE               CREATE TABLE                NO
 
8 rows selected.

create 트리거, 시퀀스, 타입, 프로시저, 테이블 등 8가지 권한이 부여되어있음



RESOURCE  롤 회수 후 CREATE TABLE 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> conn / as sysdba
Connected.
SQL> revoke resource from bokgu_user;
 
Revoke succeeded.
 
SQL> conn bokgu_user/bokgu_user 
Connected.
SQL> create table imsi (c1 number);
create table imsi (c1 number)
*
ERROR at line 1:
ORA-01031: insufficient privileges

테이블 생성이 되지 않음



RESOURCE 롤 부여 후 다시 확인

1
2
3
4
5
6
7
8
9
10
11
SQL> conn / as sysdba
Connected.
SQL> grant resource to bokgu_user;
 
Grant succeeded.
 
SQL> conn bokgu_user/bokgu_user 
Connected.
SQL> create table imsi2 (c1 number);
 
Table created.

테이블이 정상적으로 생성됨



참조 : 

https://positivemh.tistory.com/199