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

1.3 KiB

함수 명세: compileDdsPublishPlan (#617)

상태: Draft · 분류: 복잡 — 권한 컴파일·DDL diff·안전 검증

책임

DDS 백오피스의 보호 객체, 접근 역할, 테이블 세부 권한, 사용자/그룹 할당을 실행 가능한 DDS DDL diff로 바꾼다.

시그니처

DdsAuthorizationDraft -> DdsPublishPlan

규칙

  1. 그룹을 포함해 역할별 유효 사용자를 계산한다.
  2. CB_APP_USER.userId마다 ASCII DDS_U_<id> END USER 이름을 결정한다.
  3. 접근 역할마다 하나의 stable DATA ROLE 이름을 결정한다.
  4. 사용자·역할·객체·세부 권한의 현재 게시 상태와 목표 상태를 비교한다.
  5. 생성/교체/회수 DDL과 예상 영향 사용자·객체를 계산한다.
  6. 행 조건 DSL은 whitelist 기반 compiler만 사용한다. raw SQL은 거부한다.
  7. DENY 또는 지원하지 않는 권한 조합은 plan 생성 단계에서 오류로 끝낸다.

출력

  • END USER 생성/활성화/비활성화 목록
  • DATA ROLE 생성/역할 부여/회수 목록
  • DATA GRANT 생성·교체·삭제 목록
  • 예상 영향 사용자·객체·컬럼 matrix
  • 이전/목표 fingerprint와 승인 대상 diff

실패

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