데이터베이스 2017. 6. 28. 08:00


사용자 및 ROLE에 부여된 권한조회하기



데이터베이스 작업 시 "권한이 불충분합니다."라는 오류 메시지와 마주할 때가 있습니다. 그럴때는 당황하지 마시고 현재 사용자의 권한을 확인하여 처리하시면 됩니다.


사용자 생성


권한부여 및 조회를 위한 테스트 계정을 만들어보겠습니다.


- SYNTAX

CREATE USER USER_NAME IDENTIFIED BY PASSWORD

[ DEFAULT TABLESPACE TABLESPACE_NAME ]

[ TEMPORARY TABLESPACE TEMP ]

;


- EX)

CREATE USER TEST IDENTIFIED BY TEST1234

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP;


※ 사용자 삭제

- SYNTAX

DROP USER USER_NAME [CASCADE];


- EX)

DROP USER TEST_USER CASCADE;


- CASCADE : 사용자에게 부여된 권한이나 사용자가 만든 객체가 존재할 경우 CASCADE 옵션을 사용해야 해당 사용자를 삭제할 수 있음



데이터베이스 접속 테스트


사용자가 정상적으로 생성되었는지 데이터베이스에 접속을 시도하면

아래와 같은 오류가 발생됩니다.


sqlplus TEST_USER/TEST1234@ORCL


ERROR: ORA-01045: user TEST_USER lacks CREATE SESSION privilege; logon denied


사용자에게 접속권한이 없다고 ERROR 메시지를 던져주네요!



권한부여

sqlplus / as sysdba

SQL> GRANT CREATE SESSION, CREATE TABLE TO TEST_USER;


-접속확인

SQL> conn TEST_USER/TEST1234@ORCL


※ 사용자에게 권한 부여 및 회수와 관련된 자세한 내용은 오라클 계정과 권한 포스팅을 참고하세요!



권한조회


1. USER 또는 ROLE에 부여된 시스템 권한조회


SELECT GRANTEE, PRIVILEGE, ADMIN_OPTION

 FROM DBA_SYS_PRIVS;

또는

SELECT USERNAME, PRIVILEGE, ADMIN_OPTION

 FROM USER_SYS_PRIVS;


- GRANTEE : 시스템 권한을 부여받은 USER 또는 ROLE

- USERNAME : 현재 접속된 사용자

- PRIVILEGE : 부여받은 시스템 권한

- ADMIN_OPTION : 부여받은 시스템 권한을 다른 사용자에게 부여할 수 있음(YES일 경우)


2. USER 또는 ROLE에 부여된 객체 권한조회


SELECT GRANTEE, OWNER, TABLE_NAME, PRIVILEGE, GRANTOR

 FROM DBA_TAB_PRIVS

또는

SELECT GRANTEE, OWNER, TABLE_NAME, PRIVILEGE, GRANTOR

 FROM USER_TAB_PRIVS


- GRANTEE : 객체 권한을 부여받은 USER 또는 ROLE

- OWNER : 객체의 소유자

- TABLE_NAME : 객체

- GRANTOR : 객체 권한을 부여해준 USER


3. USER 또는 ROLE에 부여된 ROLE 조회


SELECT *
 FROM DBA_ROLE_PRIVS
또는
SELECT *
 FROM USER_ROLE_PRIVS

- GRANTED_ROLE : 부여된 ROLE
- DEFAULT_ROLE : DEFAULT_ROLE 여부


※ DEFAULT ROLE

   - 데이터베이스 설치 시 자동으로 생성되는 ROLE

   - 대표적인 Default Role은 CONNECT, RESOURCE가 있음

   - RESOURCE 롤은 UNLIMITED_TABLESPACE라는 권한이 할당되어 있음

   - UNLIMITED_TABLESPACE 권한을 가진 사용자는 데이터베이스에 존재하는 모든 테이블      스페이스를 저장공간으로 사용가능 

'데이터베이스' 카테고리의 다른 글

오라클 Hidden Column - SYS_로 시작하는 컬럼  (1) 2017.06.30
오라클 계정과 권한  (0) 2017.06.23
오라클 TABLESPACE와 DATAFILE  (0) 2017.06.16
TIMESTAMP 연산  (0) 2017.05.11
오라클 - PIVOT과 UNPIVOT  (0) 2017.02.02
posted by 생각퍼즐
: