데이터베이스/ORACLE

[ORACLE/오라클] 유저 생성과 권한

또 뭘 잘못 코딩했을까 2023. 5. 1. 18:40
반응형

■ 유저 생성

 

오라클에서 유저를 생성할 때는 아래와 같은 구문으로 생성한다.

(DEV01 유저를 생성하고 해당 유저의 디폴트 TABLESPACE는 TS_DEV01로 설정한다.)

--sqlplus 접속
sqlplus "/as sysdba"

--19c이상 버전일 경우 pdb로 세션 변경
alter session set container=orclpdb;

--user 생성
create user dev01 identified by dev01 default tablespace ts_dev01 temporary tablespace temp;

--user생성 확인
select * from dba_users where 1=1 and username = 'DEV01';

이렇게 생성하고 나서 접속을 시도하면 접속이 되지 않는다.

커넥션을 맺는 권한을 부여 받아야 하며, 세션을 생성할 수 있는 권한 부여받아야 비로소 "접속"은 할 수 있다.

 

 

■ 권한 주기

 

권한은 GRANT 구문으로 부여할 수 있다.

기본적인 접속을 위해 생성되어 있는 ROLE인

RESOURCE, CONNECT 을 부여한다.

--ROLE에 속한 권한 목록 확인 (RESOURCE, CONNECT)
select * from role_sys_privs where 1=1 and role in ('RESOURCE','CONNECT') order by 1

CONNECT	CREATE SESSION	NO	YES	YES
CONNECT	SET CONTAINER	NO	YES	YES
RESOURCE	CREATE INDEXTYPE	NO	YES	YES
RESOURCE	CREATE TABLE	NO	YES	YES
RESOURCE	CREATE TRIGGER	NO	YES	YES
RESOURCE	CREATE TYPE	NO	YES	YES
RESOURCE	CREATE OPERATOR	NO	YES	YES
RESOURCE	CREATE PROCEDURE	NO	YES	YES
RESOURCE	CREATE SEQUENCE	NO	YES	YES
RESOURCE	CREATE CLUSTER	NO	YES	YES

--권한 부여
grant connect to dev01;
grant resource to dev01;

--권한 확인
select grantee, granted_role from dba_role_privs where 1=1 grantee = 'DEV01';

DEV01	CONNECT
DEV01	RESOURCE

 

해당 ROLE을 부여한 후 여러 작업을 위해 SYSTEM 권한, 객체 권한 등을 부여한다.

 

① 시스템 권한 : 데이터베이스에서 특정 작업을 수행할 수 있게해주는 권한 (ANY 옵션은 모든 스키마에 대해 권한을 부여)

② 객체 권한 : 다른 유저가 소유하고 있는 객체를 사용자가 엑세스할 수 있게 해주는 권한

 

시스템 권한은 아래와 같이 부여할 수 있다.

--시스템 권한 부여
grant select any table to DEV01;
grant create any table to DEV01;
grant update any table to DEV01;
grant insert any table to DEV01;
grant delete any table to DEV01;
grant alter any table to DEV01;

객체 권한은 아래와 같이 부여할 수 있다.

--객체 권한 부여
grant select on DEV01.TEST_TAB to EDU01;
grant insert on DEV01.TEST_TAB to EDU01;

GRANT 구문으로 권한을 부여받은 USER는 

ADMIN OPTION / GRANT OPTION 을 통해

자신이 부여받은 권한을 다른 유저에게 부여할 수 있다.

해당 옵션은 아래와 같이 부여할 수 있다.

grant create any table to DEV01 with admin option; --시스템 권한의 admin option
grant select on DEV01.TEST_TAB to EDU01 with grant option; --객체 권한 grant option

 

반응형