[Oracle] 권한 조회 방법 확인하기, 권한 부여 회수 방법

오라클 권한을 이야기할 때 빠질 수 없는 단어가 있습니다. 각각 privileges(privs), grant, revoke입니다.
privileges는 말 그대로 권한을 의미하며 데이터베이스 오브젝트에서는 줄여서 privs라는 단어로 자주 확인할 수 있습니다.

오라클 권한 조회 방법

오라클 권한 조회 방법 확인하기

grant는 to와 함께 권한 부여, revoke는 from과 함께 권한 회수 역할을 담당합니다.

다음 예제는 뷰에 대해 사용자에게 SELECT 권한을 부여하고 회수하는 방법입니다.

--권한 부여
GRANT SELECT ON V_$PARAMETER TO username;

--권한 회수
REVOKE SELECT ON V_$PARAMETER FROM username;

다음 오라클 권한 조회 예제는 DBA 오브젝트에서 오브젝트 타입이 뷰인 대상을 확인해 보았습니다.

SELECT 'SELECT * FROM ' || OBJECT_NAME || ';'
       FROM DBA_OBJECTS
      WHERE     0 = 0
            AND OBJECT_TYPE = 'VIEW'
            AND REGEXP_LIKE (OBJECT_NAME, 'DBA.*PRIVS');

'SELECT*FROM'||OBJECT_NAME||';'
--------------------------------------------------------------------------------
SELECT * FROM DBA_COL_PRIVS;
SELECT * FROM DBA_ROLE_PRIVS;
SELECT * FROM DBA_TAB_PRIVS;
SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM DBA_AQ_AGENT_PRIVS;
SELECT * FROM DBA_RSRC_CONSUMER_GROUP_PRIVS;
SELECT * FROM DBA_RSRC_MANAGER_SYSTEM_PRIVS;

7 rows selected.
  • DBA_SYS_PRIVS => 사용자 및 롤에 부여된 시스템 권한 확인하기
  • DBA_TAB_PRIVS => 테이블에 관한 모든 권한 부여 확인하기
  • DBA_ROLE_PRIVS => 사용자 또는 롤에 부여된 롤 확인하기
  • DBA_COL_PRIVS => 데이터베이스의 컬럼에 대한 권한 부여 확인하기

시스템과 테이블 권한은 조회하는 경우가 간혹 있으니, 정확하게는 아니더라도 이런 것도 있다는 것 정도는 알고 가세요~

DBA 대신 ALL, USER로 검색할 수도 있습니다.

댓글