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에서 항상 권한 내역을 확인하는 것이 좋다.
반응형
'Dev > DB' 카테고리의 다른 글
[DB] Character set 'utf8mb3' is not supported by .Net Framework. (2) | 2024.11.18 |
---|---|
[DB] ORA-12505 에러 원인 및 해결 방법 (3) | 2024.11.10 |
[ORACLE] Function과 Procedure의 효율적인 사용 방법 (4) | 2024.09.08 |
[DB] Oracle AWR 스냅샷을 활용한 SQL 성능 분석 (0) | 2024.08.20 |
[ORACLE] 오라클 쿼리 로그 확인하기 (0) | 2024.08.13 |