1.2 KiB
1.2 KiB
ORDS/VPD SQL trace
권한 결과 확인(/probe)은 ORDS 응답의 optional vpd_predicate, effective_sql 필드를 “토큰 적용 후 SQL” 영역에 표시한다.
{
"vpd_predicate": "(DEPT_CODE = SYS_CONTEXT('CB_AGENT_CTX', 'DEPT_CODE'))",
"effective_sql": "SELECT ... WHERE (...) AND ROWNUM <= ...",
"items": []
}
기존 Handler가 trace 필드를 반환하지 않으면 백오피스가 같은 DB 연결에서 set_user_by_bearer → CB_AGENT_DOC_VPD_FILTER → clear_user 순서로 기본 VPD predicate를 조회한다. 이 보조 조회가 실패해도 권한 결과 자체는 실패 처리하지 않는다.
기존 설치에 trace 권한을 추가하려면 ADMIN으로 sql/adb/33_agent_ords_sql_trace_grant.sql을 실행한 뒤 CB_ORDS로 22_agent_ords_security_ords_handler_setup.sql을 재실행하거나 /ords-handlers에서 trace가 포함된 Handler source를 저장한다.
표시되는 SQL은 Oracle optimizer 실행계획이 아니라, 해당 토큰 컨텍스트에서 VPD 정책 함수가 반환한 행 predicate를 기본 Handler SELECT에 결합한 확인용 SQL이다. Bearer 원문은 trace나 응답에 포함하지 않는다.