A 업체에게 GRANT 명령으로 부여된 권한이 있는 지 확인이 필요한 경우가 있다.

DBA_TAB_PRIVS 테이블은 Oracle 데이터베이스에서 특정 계정이나 역할에 부여된 테이블 및 뷰 권한을 확인할 수 있는 뷰다.

DBA, 개발자, 데이터베이스 관리자들이 특정 사용자가 어떤 테이블에 접근할 수 있는지 조회할 때 자주 사용되며, 보안 관리와 권한 설정을 효과적으로 관리할 수 있게 도와준다.

 

주요 컬럼 설명

컬럼명 데이터 타입 설명
GRANTEE VARCHAR2 권한을 부여받은 사용자 또는 역할의 이름
OWNER VARCHAR2 테이블 또는 뷰의 소유자 (소유 계정 이름)
TABLE_NAME VARCHAR2 권한이 부여된 테이블 또는 뷰의 이름
GRANTOR VARCHAR2 권한을 부여한 사용자의 이름
PRIVILEGE VARCHAR2 부여된 권한의 종류 (예: SELECT, INSERT 등)
GRANTABLE VARCHAR2 권한을 다른 사용자에게 재부여할 수 있는지 여부

 

예제 쿼리

TEST 계정에 SELECT 권한이 부여된 모든 테이블과 뷰를 확인하는 쿼리는 아래와 같다.

SELECT table_name, owner, privilege, grantable
FROM dba_tab_privs
WHERE grantee = 'TEST' AND privilege = 'SELECT';

위 쿼리를 실행하면 TEST 계정이 SELECT 권한을 가진 테이블 및 뷰 목록을 확인할 수 있다.

grantable 컬럼의 값이 YES인 경우 EMPAL 계정이 이 권한을 다른 사용자에게 부여할 수도 있다는 의미이다.

 

유의 사항

접근 권한: DBA_TAB_PRIVS는 DBA 권한이 있어야 접근할 수 있는 뷰다. 일반 사용자나 제한된 권한의 사용자는 접근이 불가능하다.
권한 관리 주의: 잘못된 권한 부여는 보안 문제를 초래할 수 있으므로, 권한을 부여할 때는 신중하게 계획하고 관리해야 한다. 권한 부여 후에는 DBA_TAB_PRIVS에서 항상 권한 내역을 확인하는 것이 좋다.

반응형