본문 바로가기
728x90

Database/Oracle581

[ORACLE] ALL_HISTOGRAMS 완전 정복 : 옵티마이저를 움직이는 히스토그램 이해와 실전 튜닝 ALL_HISTOGRAMS는 컬럼 값의 분포를 버킷(bucket) 단위로 저장해 옵티마이저(Optimizer)의 선택도(Selectivity) 추정에 직접적인 근거를 제공하는 핵심 딕셔너리 뷰입니다. 스큐(Skew) 여부, 상·하위 빈도값, 경계값 변화폭을 정밀하게 파악해 조인 순서, 접근 경로, 인덱스 사용 여부 등 실행계획의 품질을 가르는 지점에서 결정적인 인사이트를 줍니다.왜 ALL_HISTOGRAMS를 봐야 하는가?실제 분포 파악: 평균치 기반 카디널리티 착시를 방지(특히 편향 데이터).계획 재현·비교: 통계 스냅샷 간 버킷 경계 변화로 계획 변화 원인 추적.힌트 최소화: 통계만 바로잡아도 힌트 없는 안정적 실행계획 유도.핵심 개념 요약버킷(bucket): 값 구간을 뜻합니다. 각 버킷의 끝점(E.. 2025. 10. 10.
[ORACLE] TABLE_PRIVILEGES 완전 정복 : 실무 중심 GRANT/REVOKE 점검 쿼리 보안 모범 사례 이 글은 Oracle의 테이블 객체 권한(Table Object Privileges)을 실무 관점에서 깊이 있게 정리합니다. 권한의 의미와 부작용, 안전한 부여/회수 패턴, 그리고 DBA_TAB_PRIVS·ALL_TAB_PRIVS·USER_TAB_PRIVS 계열 뷰를 활용한 점검 쿼리까지 한 번에 확인할 수 있습니다. Oracle 공식 문서를 교차 확인하여 최신 동작을 반영했습니다. 1) 왜 지금 TABLE_PRIVILEGES를 점검해야 할까?보안·감사 요구 강화: 최소권한 원칙을 위반한 광범위 GRANT는 곧바로 리스크로 이어집니다.운영 안정성: 불필요한 WITH GRANT OPTION은 권한 전염(chain grant)을 유발하여 회수(REVOKE)를 복잡하게 만듭니다.버전 변화: 12c부터 도입된 .. 2025. 10. 9.
[ORACLE] SESSION_ROLES 완벽 가이드: 현재 세션에 활성화된 역할을 정확히 읽고, 점검하고, 통제하는 방법 SESSION_ROLES는 “지금 이 세션에서 실제로 쓰이고 있는 역할(role)”을 정확히 보여주는 가장 단순하면서도 강력한 뷰입니다. 권한 감사, 최소 권한 원칙(Least Privilege) 점검, 애플리케이션 세션 검증, 운영 이슈 재현 등에서 첫 번째로 확인해야 할 객체죠. 이 글은 오늘 바로 적용할 수 있는 점검 절차와 예제, 그리고 관련 뷰와의 정확한 비교표까지 담았습니다.핵심 요약: SESSION_ROLES는 “활성화된 역할 목록”을 한 줄에 한 개씩 반환합니다(열: ROLE). 부여는 되었지만 현재 세션에서 꺼져 있는 역할은 보이지 않습니다.1) 왜 SESSION_ROLES부터 봐야 할까?현재 영향 범위: 지금 실행되는 SQL/PLSQL이 어떤 역할의 시스템/객체 권한에 의해 허용되는지 .. 2025. 10. 9.
[ORACLE] SESSION_PRIVS 뷰 완벽 해설 : 현재 세션이 가진 권한 확인 방법 Oracle Database에서는 보안과 권한 관리가 매우 중요합니다. 특히 DBA나 개발자가 자신의 세션이 어떤 시스템 권한(System Privileges)을 가지고 있는지 확인해야 하는 경우가 자주 발생합니다. 이때 활용되는 핵심 데이터 딕셔너리 뷰가 바로 SESSION_PRIVS입니다. 본 글에서는 SESSION_PRIVS의 구조, 주요 컬럼, 활용 예시, 실무에서의 응용 방법, 그리고 유사 뷰들과의 비교를 통해 이 뷰를 완벽하게 이해할 수 있도록 설명하겠습니다.1. SESSION_PRIVS 개요SESSION_PRIVS 뷰는 현재 세션이 보유한 시스템 권한 목록을 보여줍니다. 즉, 어떤 권한을 통해 현재 사용자가 특정 DDL 또는 DML을 수행할 수 있는지를 한눈에 확인할 수 있습니다. 이 뷰는 .. 2025. 10. 9.
[ORACLE] ROLE_TAB_PRIVS 뷰 완벽 해설 – 사용자별 테이블 권한 확인 가이드 Oracle Database에서 ROLE_TAB_PRIVS 뷰는 “Role(역할)”을 통해 부여된 테이블 수준의 권한 정보를 확인할 수 있는 중요한 데이터 딕셔너리 뷰입니다. 데이터베이스 관리자는 이 뷰를 통해 특정 Role이 어떤 테이블에 접근 권한을 가지고 있는지, 그리고 해당 권한이 직접 또는 간접적으로 어떤 사용자에게 영향을 주는지를 체계적으로 파악할 수 있습니다.1. ROLE_TAB_PRIVS 개요ROLE_TAB_PRIVS는 “Role 기반 테이블 권한 관리”의 핵심 뷰로서, Role이 소유한 테이블, 뷰, 시퀀스 등의 객체에 대한 권한 정보를 제공합니다. 즉, DBA_TAB_PRIVS나 USER_TAB_PRIVS와 달리, “사용자”가 아닌 “역할(Role)” 중심으로 정리되어 있는 것이 가장 .. 2025. 10. 9.
[ORACLE] ROLE_SYS_PRIVS 뷰 완벽 해설 : 시스템 권한과 역할 매핑 구조 ROLE_SYS_PRIVS는 오라클 데이터베이스에서 역할(Role)과 시스템 권한(System Privilege) 간의 관계를 조회할 수 있는 핵심적인 데이터 딕셔너리 뷰입니다. 이 뷰는 데이터베이스 보안을 설계하거나 사용자 권한을 점검할 때 매우 중요한 역할을 합니다. 특히 DBA_ROLE_PRIVS 또는 ROLE_TAB_PRIVS와 함께 사용하면 권한의 계층적 구조를 명확히 이해할 수 있습니다.1. ROLE_SYS_PRIVS의 개요ROLE_SYS_PRIVS는 각 ROLE에 부여된 시스템 권한(SYSTEM PRIVILEGE)을 보여주는 데이터 사전 뷰입니다. 즉, 어떤 역할이 어떤 시스템 권한을 보유하고 있는지 확인할 때 사용됩니다.항목설명뷰 이름ROLE_SYS_PRIVS소유자SYS주요 목적역할(Rol.. 2025. 10. 9.
728x90