오라클 권한을 이야기할 때 빠질 수 없는 단어가 있습니다. 각각 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로 검색할 수도 있습니다.