2.4 KiB
2.4 KiB
#740 HMM MCP VPD 실행 경계
목적
HMM MCP의 인증 사용자를 Oracle DB 세션 사용자 문맥으로 연결하고, HR 및 선사 배정 데이터를 Oracle VPD로 제한한다. 팀원은 본인 행, 팀장은 본인과 직속 팀원 행을 조회한다.
범위와 결정사항
- 포털의 사용자 preset은 각각 다른 Bearer token 환경변수를 사용한다.
- 백오피스는 token hash로 직원을 식별하고 실제 SELECT와 같은
CB_ORDS연결에SET_VPD_CONTEXT를 호출한다. ADMIN은EXEMPT ACCESS POLICY가 있으므로 Select AISHOWSQL생성만 담당한다.HMM_CARRIER_ASSIGNMENTS_V.EMPLOYEE_ID에SELF,MANAGED_TEAM,ALL규칙을 적용한다.- 기존 MCP 이름
search_carrier_performance, 자연어 Select AI, 선사CARRIER_CODE조인과 HTML renderer는 유지한다. 고정 SQL이나 대체 조회 패키지를 만들지 않는다. - 연속 호출에서도 renderer 입력이 달라지지 않도록 Select AI 질의 계약이 출력 컬럼의 ASCII uppercase underscore 별칭을 고정한다.
전체 구성
포털 사용자 preset
→ 사용자별 Bearer token
→ token hash로 EMPLOYEE_ID 확인
→ ADMIN Select AI SHOWSQL 생성
→ CB_ORDS 연결에서 SET_VPD_CONTEXT
→ 생성 SELECT 실행
→ HMM_CARRIER_ASSIGNMENTS_V VPD
├─ E1001 팀장: 직속 팀원 배정 8건
└─ E1002 팀원: 본인 배정 C001·C002 2건
→ 허용된 CARRIER_CODE만 원격 KPI와 조인
→ HTML renderer
핵심은 token 소유자, DB context의 직원, VPD predicate가 동일한 요청 안에서 이어지는 것이다.
SET_VPD_CONTEXT를 호출해도 EXEMPT ACCESS POLICY를 가진 연결에서 SELECT하면 정책이 우회된다.
현재 상태
2026-08-10 운영 적용 및 MCP 호출 검증을 완료했다.
- 사용자별 portal token 5개가 서로 다른 hash로 직원에게 연결됨
HMM_CARRIER_SCOPE_POLICY활성화- MCP E1001:
vpdEnforced=true, 8건 - MCP E1002:
vpdEnforced=true, 2건, 직원 범위 E1002만 포함 - E1002 renderer: 입력 2건, HTML에 C001·C002 포함, E1003 미포함
- 동일 E1002 조회와 renderer를 두 번 연속 호출해 두 호출 모두 표준 컬럼 9개와 HTML 2건을 확인