2.5 KiB
2.5 KiB
HMM 휴가 팀 계층 VPD 적용·검증 보고서
- 일자: 2026-07-23
- Redmine: #707
- 브랜치:
hmm-backoffice - 대상 DB: HMMAIPOC
ADMIN - 대상 서비스:
https://hmm-backoffice.cloud-handson.com
적용 결과
sql/adb/72_hmm_leave_team_vpd.sql을 적용해 다음 구성을 활성화했다.
| 구성 | 결과 |
|---|---|
| 신뢰 컨텍스트 | HMM_ACCESS_CTX |
| 토큰 검증 패키지 | HMM_ACCESS_CTX_PKG / VALID |
| 정책 함수 | HMM_LEAVE_VPD_FILTER / VALID |
| 휴가 잔여 정책 | HMM_LEAVE_BALANCES.HMM_LEAVE_SCOPE_POLICY / ENABLE=YES |
| 휴가 신청 정책 | HMM_LEAVE_REQUESTS.HMM_LEAVE_SCOPE_POLICY / ENABLE=YES |
| 팀장 역할 | E1001 → HMM_HR_MANAGER |
| 팀원 역할 | E1002~E1007 → HMM_HR_VIEWER |
| 저장 권한 | 두 객체 × ALL, MANAGED_TEAM, SELF = 6건 |
실제 행 접근 검증
ADMIN에는 EXEMPT ACCESS POLICY가 있으므로 이를 결과 검증에 사용하지 않았다. 별도의 비면제
임시 DB 사용자를 만들고, SHA-256 해시만 DB에 저장한 임시 E1001/E1002 토큰으로 조회한 뒤
사용자와 토큰을 즉시 제거했다.
| 검증 세션 | 휴가 잔여 | 휴가 신청 | 교차 사용자 조건 조회 |
|---|---|---|---|
| 컨텍스트 없음 | 0 | 0 | - |
| E1001 팀장 | 7 | 8 | 직접 보고 팀원 포함 |
| E1002 팀원 | 1 | 1 | E1003 신청 0 |
| 무효 토큰 | 0 | - | 컨텍스트 초기화·차단 |
결과: VPD_VERIFY=PASS
애플리케이션 검증
- Maven: 105 tests, 0 failures, 0 errors
- 배포 JAR SHA-256:
1b10582e72e4639902ea8f65156af1067941af3ef50cde1d9f767c88f048fb85 - systemd:
vpd-backoffice.serviceactive - 공개 로그인: HTTP 200
- 실제 브라우저 전수 검사:
- 관리 화면 26개: 실패 0
- HMM 정형 원장 6개: 실패 0
ORA-*, 데이터 처리 오류, KB/POC 잔존 문구: 0- page error: 0
- console error: 0
특히 /roles, /permissions, /vpd-policies, /vpd-filter-runtime에서 HMM 역할 3개,
휴가 원장 권한 6개, 정책 2개와 HMM_LEAVE_VPD_FILTER가 표시되는 것을 화면으로 확인했다.
보안 정리
- DB 비밀번호, 토큰 원문, 해시는 Git·Redmine·보고서에 기록하지 않았다.
- 임시 비면제 DB 사용자는 검증 종료 시
DROP USER ... CASCADE로 제거했다. - 임시 토큰 2건은 검증 종료 시 삭제했다.
- HR 관리자 역할은 전체 접근 규칙만 준비하고 데모 사용자에게 자동 부여하지 않았다.