feat: enforce DDS token access through common grants
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
<p class="context-summary">권한 관리에서 만든 규칙을 DDS DATA ROLE/DATA GRANT로 연결하고 실제 검색 결과로 확인합니다.</p>
|
||||
<details class="explanation-details">
|
||||
<summary>VPD의 Policy/Filter와 무엇이 다른가요?</summary>
|
||||
<p>VPD는 Policy가 Filter function을 호출해 요청마다 predicate를 계산합니다. DDS에는 그 두 단계를 별도 함수로 만들지 않고, 보호 VIEW와 DATA GRANT에 행·컬럼 조건을 선언합니다.</p>
|
||||
<p>VPD는 Policy가 Filter function을 호출해 요청마다 predicate를 계산합니다. DDS는 보호 VIEW/TABLE별 DATA GRANT에 행·컬럼 조건을 선언하고, 필요하면 predicate가 공통 권한을 읽는 Definer-rights 함수를 호출합니다.</p>
|
||||
<p class="mb-0">따라서 이 화면에서는 VPD Filter를 수정하지 않습니다. 일상적인 변경은 <a href="/permissions">권한 관리</a>에서 하고, DDS grant 반영은 승인된 SQL/배포 절차로 수행합니다.</p>
|
||||
</details>
|
||||
</div>
|
||||
@@ -36,7 +36,7 @@
|
||||
<span>사용자·그룹·역할</span><strong>→</strong>
|
||||
<span>객체별 행·TAG·컬럼 권한</span><strong>→</strong>
|
||||
<span>DATA ROLE / DATA GRANT</span><strong>→</strong>
|
||||
<span>END USER 결과</span>
|
||||
<span>토큰 Context 또는 END USER 결과</span>
|
||||
</div>
|
||||
<p class="text-muted mb-0">관리 대상 이름: <code th:text="${managementObject}">CB_VECTOR_SEARCH_DOCUMENTS</code></p>
|
||||
</section>
|
||||
@@ -55,8 +55,8 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code th:text="${ddsVectorObject}">ADMIN.CB_DDS_VECTOR_SEARCH_DOCUMENTS</code></td>
|
||||
<td>END USER → DATA ROLE → DATA GRANT</td>
|
||||
<td>DATA GRANT가 없으면 객체가 보이지 않음</td>
|
||||
<td>토큰 Context/END USER → DATA ROLE → 객체별 DATA GRANT</td>
|
||||
<td>Grant predicate가 없거나 조건 불일치 시 차단</td>
|
||||
<td><a class="btn btn-sm btn-outline-primary" href="/vector-knowledge">검색 결과 확인</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -64,8 +64,8 @@
|
||||
</div>
|
||||
<details class="explanation-details mt-3">
|
||||
<summary>추가·수정 가이드</summary>
|
||||
<p>새 보호 대상을 추가할 때는 (1) 권한 관리에 객체와 TAG 규칙을 등록하고 (2) DDS 전용 VIEW를 만들고 (3) 해당 DATA ROLE에 <code>CREATE OR REPLACE DATA GRANT ... WHERE ...</code>를 연결한 뒤 (4) 허용·거부·권한 없음 사용자를 직접 검증합니다.</p>
|
||||
<p class="mb-0">현재 벡터 예제의 기준 SQL은 <code>sql/adb/32_dds_vector_tag_setup.sql</code>입니다. 이 예제는 임의의 한 테이블만 강제하는 유일한 방식이 아니라, 실제 업무 VIEW/Handler로 확장하기 위한 기준 흐름입니다.</p>
|
||||
<p>새 보호 대상을 추가할 때는 (1) 권한 관리에 논리 객체와 TAG 규칙을 등록하고 (2) DDS 전용 VIEW/TABLE을 만들고 (3) 해당 객체에 <code>CREATE OR REPLACE DATA GRANT ... WHERE ...</code>를 연결하고 (4) 토큰 Context와 직접 END USER의 허용·거부·권한 없음을 각각 검증합니다.</p>
|
||||
<p class="mb-0">벡터 기준 SQL은 <code>sql/adb/32_dds_vector_tag_setup.sql</code>, 토큰 기반 공통 predicate 기준은 <code>sql/adb/34_dds_token_data_grant_common_auth.sql</code>입니다.</p>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user