Files
vpd-permission-poc/docs/design/617-dds-mcp-end-user-context/fn-compile-dds-publish-plan.md

1.4 KiB

함수 명세: compileDdsPublishPlan (#617)

상태: Superseded by runtime authorization provisioning · 기존 사용자별 publish PoC 설명

책임

DDS 백오피스의 보호 Object·CRUD·컬럼 그룹 메타데이터를 실행 가능한 장기 DDS DDL diff로 바꾼다. 사용자·그룹·역할·퍼미션 값은 런타임 권한 함수가 평가하므로 이 계획이 사용자별 Grant를 만들지 않는다.

시그니처

DdsAuthorizationDraft -> DdsPublishPlan

규칙

  1. Object/CRUD/컬럼 그룹별 고정 DATA GRANT 이름과 컬럼 목록을 결정한다.
  2. 각 Grant predicate가 ORA_END_USER_CONTEXT.username과 whitelist 상수를 can_access에 전달하도록 생성한다.
  3. DDS_MCP_RUNTIME DATA ROLE과 local END USER provisioning 상태를 비교한다.
  4. Object·컬럼·CRUD 메타데이터 변경만 DDL diff로 계산한다.
  5. 사용자·그룹·역할·퍼미션 값 변경은 DDL diff에 포함하지 않는다.
  6. raw SQL과 caller 제공 identifier는 거부한다.

출력

  • 신규 END USER provisioning 및 공통 DATA ROLE 부여 목록
  • Object/CRUD/컬럼 그룹별 DATA GRANT 생성·교체·삭제 목록
  • 권한 함수/권한 테이블 prerequisite와 예상 영향 Object·컬럼 matrix
  • 이전/목표 fingerprint와 승인 대상 diff

실패

충돌, 비활성 객체, DSL 오류, DENY 규칙, 이름 충돌은 게시 전에 차단한다.