Files
vpd-permission-poc/docs/design/559-independent-vpd-dds-demos

독립 VPD·DDS 데모 구성

목적

VPD와 Oracle Deep Data Security(DDS)를 한 애플리케이션에 섞지 않고, 같은 접근 결과를 서로 다른 DB 보안 모델로 비교한다.

인스턴스 경계

구분 VPD Demo DDS Demo
실행 디렉터리 /home/opc/apps/vpd-backoffice /home/opc/apps/dds-backoffice
기본 포트 8082 8083
사용자 식별 공통 DB 계정 + Bearer/세션 컨텍스트 DDS END USER 직접 logon
권한 기준 업무 권한 테이블 + VPD 함수 DATA ROLE + DATA GRANT
보호 객체 V_CUSTOMERS_* / VPD 전용 객체 V_DDS_CUSTOMERS_* / DDS 전용 객체
운영 프로세스 VPD start/stop/status DDS start/stop/status

두 인스턴스는 화면, JAR, PID, 로그, 설정 파일을 공유하지 않는다. DDS 데모는 VPD 권한 테이블이나 VPD 정책 함수에 의존하지 않는다.

동일하게 비교할 수 있는 것

  • 사용자별 원본 접근 범위
  • 행 단위 허용/차단
  • 권한 없는 사용자의 default deny
  • 보호 VIEW 우회 시도 차단

동일하게 간주하면 안 되는 것

  • VPD의 공통 DB 계정 + Bearer + 동적 predicate 흐름
  • 업무 권한 테이블을 매 요청마다 읽는 동적 변경 방식
  • ORDS Handler가 Bearer 값을 DDS 사용자명으로 바꾸는 것만으로 DDS 컨텍스트가 생기는 동작

DDS는 직접 END USER로 접속하거나 지원 드라이버가 EndUserSecurityContext를 전달해야 한다. 따라서 DDS 데모의 조회 결과가 VPD와 같더라도, 권한이 계산·전달되는 경로는 별도로 설명해야 한다.

실행 확인

/home/opc/apps/vpd-backoffice/status.sh
/home/opc/apps/dds-backoffice/status.sh

외부 공개 포트는 애플리케이션 분리와 별개의 운영 변경이다. DDS 기본 바인딩은 127.0.0.1:8083이며, 직접 공개하려면 HTTPS, NSG, VM firewalld 정책을 별도로 승인한다.