Files
vpd-permission-poc/docs/design/491-permission-effective-preview/README.md
2026-06-26 13:32:39 +09:00

2.5 KiB

Redmine #491 - 권한 추가 Wizard 유효 권한 Preview 설계

프로젝트 개요

VPD Backoffice는 Oracle Database VPD/ORDS 기능을 백오피스 권한 테이블로 제어하기 위한 Spring Boot 관리 도구다. 권한 관리 화면은 VPD policy function이 참조할 사용자, 그룹, 역할, 행 규칙, 컬럼 원문 허용 규칙을 저장한다.

목표

권한 추가 Wizard에서 저장 전 선택한 역할/객체/행 규칙/컬럼 규칙이 실제로 누구에게 어떤 권한 효과를 주는지 운영자가 확인할 수 있게 한다.

문제

현재 preview는 역할, 객체, 행 규칙, 컬럼 정책을 짧게만 보여준다. 그룹 기반 역할 부여가 들어간 상태에서 다음 내용을 저장 전 파악하기 어렵다.

  • 선택한 역할이 직접 사용자에게 붙었는지
  • 그룹을 통해 어떤 사용자에게 상속되는지
  • 선택한 TABLE/VIEW의 컬럼과 행 규칙 대상 컬럼이 무엇인지
  • 저장될 VPD filter 조건이 어떤 predicate 모양이 되는지
  • 민감 컬럼 중 원문 표시 허용 컬럼과 NULL 처리 대상이 어떻게 갈리는지

설계

  • PermissionController가 사용자-역할, 그룹-역할, 그룹-사용자 데이터를 권한 화면에 추가로 내려준다.
  • 역할 <option>에 직접 사용자, 역할 보유 그룹, 그룹 상속 사용자 요약을 data-*로 넣는다.
  • 보호 객체 <option>에 전체 컬럼과 마스킹 대상 컬럼 metadata를 유지하고 preview에서 사용한다.
  • Wizard 저장 전 검토에 다음 항목을 추가한다.
    • 적용 대상 사용자/그룹 요약
    • 선택 객체 컬럼 목록
    • 행 규칙 predicate preview
    • 컬럼 원문 허용/NULL 처리 preview
  • DB 스키마 객체처럼 저장 전 컬럼 metadata가 비동기로 조회되는 경우, 기존 /permissions/object-columns 응답을 preview에도 반영한다.

완료 기준

  • 역할 선택 시 직접 사용자, 그룹, 그룹 상속 사용자 요약이 표시된다.
  • 객체 선택 시 컬럼 목록과 마스킹 대상 컬럼 목록이 표시된다.
  • 행 규칙 추가/수정 시 저장될 predicate preview가 갱신된다.
  • 원문 표시 허용 컬럼 입력/버튼 선택 시 NULL 처리 대상 preview가 갱신된다.
  • 기존 권한 저장 동작과 검증 로직은 유지된다.

검증

  • mvn test
  • Playwright:
    • /permissions에서 역할 영향도 preview 확인
    • 객체 컬럼 preview 확인
    • 행 규칙/컬럼 입력 변경 시 preview 갱신 확인
    • 390px 모바일 body overflow 없음