32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# 함수 명세: `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 규칙, 이름 충돌은 게시 전에 차단한다.
|