feat: make DDS demo data plane independent
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
- 기본 포트: `8083`
|
||||
- 기본 화면: `/` 또는 `/dds`
|
||||
- 기본 보호 객체: `ADMIN.V_DDS_CUSTOMERS_PG`, `ADMIN.V_DDS_CUSTOMERS_MY`
|
||||
- DDS 전용 사용자: `dds_demo_my`, `dds_demo_pg`, `dds_demo_both`, `dds_demo_none`
|
||||
- 조회 방식: 선택한 DDS `END USER` 자격으로 직접 Oracle JDBC 연결
|
||||
|
||||
## 두 데모의 관계
|
||||
@@ -28,10 +29,10 @@ ORDS Handler가 Bearer 값을 `cb_dds_hr` 같은 문자열로 매핑하는 것
|
||||
|
||||
## 실행
|
||||
|
||||
먼저 기존 DDS SQL을 적용합니다.
|
||||
먼저 DDS 데모 전용 로컬 데이터셋과 권한 객체를 적용합니다. 이 스크립트는 VPD VIEW나 외부 RDS DB Link를 사용하지 않습니다.
|
||||
|
||||
```bash
|
||||
./run.sh dds-setup
|
||||
sqlplus "$ADB_USER/$ADB_PASSWORD@$ADB_TNS" @sql/adb/31_dds_standalone_demo_setup.sql
|
||||
```
|
||||
|
||||
그 다음 DDS 인스턴스를 실행합니다.
|
||||
|
||||
@@ -47,12 +47,12 @@ public class DdsQueryService {
|
||||
public List<DdsSourceOption> sources() {
|
||||
return List.of(
|
||||
new DdsSourceOption(
|
||||
"PG", "PostgreSQL 원본", properties.pgObject(),
|
||||
"DDS DATA GRANT가 허용한 PostgreSQL 데이터만 반환합니다."
|
||||
"PG", "PG 데이터셋", properties.pgObject(),
|
||||
"DDS 전용 로컬 PG 데이터셋에서 허용된 행만 반환합니다."
|
||||
),
|
||||
new DdsSourceOption(
|
||||
"MY", "MySQL 원본", properties.myObject(),
|
||||
"DDS DATA GRANT가 허용한 MySQL 데이터만 반환합니다."
|
||||
"MY", "MY 데이터셋", properties.myObject(),
|
||||
"DDS 전용 로컬 MY 데이터셋에서 허용된 행만 반환합니다."
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -31,20 +31,20 @@ dds:
|
||||
my:
|
||||
label: MY 전용 사용자
|
||||
description: MySQL 원본만 허용하는 DATA ROLE
|
||||
username: ${DDS_BACKOFFICE_MY_USERNAME:ddsuser_my}
|
||||
username: ${DDS_BACKOFFICE_MY_USERNAME:dds_demo_my}
|
||||
password: ${DDS_BACKOFFICE_MY_PASSWORD:${DDSUSER_MY_PASSWORD:}}
|
||||
pg:
|
||||
label: PG 전용 사용자
|
||||
description: PostgreSQL 원본만 허용하는 DATA ROLE
|
||||
username: ${DDS_BACKOFFICE_PG_USERNAME:ddsuser_pg}
|
||||
username: ${DDS_BACKOFFICE_PG_USERNAME:dds_demo_pg}
|
||||
password: ${DDS_BACKOFFICE_PG_PASSWORD:${DDSUSER_PG_PASSWORD:}}
|
||||
both:
|
||||
label: 통합 사용자
|
||||
description: 두 원본을 모두 허용하는 DATA ROLE
|
||||
username: ${DDS_BACKOFFICE_BOTH_USERNAME:ddsuser_both}
|
||||
username: ${DDS_BACKOFFICE_BOTH_USERNAME:dds_demo_both}
|
||||
password: ${DDS_BACKOFFICE_BOTH_PASSWORD:${DDSUSER_BOTH_PASSWORD:}}
|
||||
none:
|
||||
label: 차단 사용자
|
||||
description: 접속만 가능하고 DATA GRANT가 없는 사용자
|
||||
username: ${DDS_BACKOFFICE_NONE_USERNAME:ddsuser_none}
|
||||
username: ${DDS_BACKOFFICE_NONE_USERNAME:dds_demo_none}
|
||||
password: ${DDS_BACKOFFICE_NONE_PASSWORD:${DDSUSER_NONE_PASSWORD:}}
|
||||
|
||||
@@ -98,10 +98,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="matrix-grid">
|
||||
<div class="matrix-card"><strong>ddsuser_my</strong><span>MY 원본 허용</span><small>PG 객체는 ORA-00942</small></div>
|
||||
<div class="matrix-card"><strong>ddsuser_pg</strong><span>PG 원본 허용</span><small>MY 객체는 ORA-00942</small></div>
|
||||
<div class="matrix-card"><strong>ddsuser_both</strong><span>PG + MY 허용</span><small>두 DATA GRANT 모두 적용</small></div>
|
||||
<div class="matrix-card muted"><strong>ddsuser_none</strong><span>접속만 허용</span><small>데이터 권한 없음 · default deny</small></div>
|
||||
<div class="matrix-card"><strong>dds_demo_my</strong><span>MY 데이터셋 허용</span><small>PG 객체는 ORA-00942</small></div>
|
||||
<div class="matrix-card"><strong>dds_demo_pg</strong><span>PG 데이터셋 허용</span><small>MY 객체는 ORA-00942</small></div>
|
||||
<div class="matrix-card"><strong>dds_demo_both</strong><span>PG + MY 허용</span><small>두 DATA GRANT 모두 적용</small></div>
|
||||
<div class="matrix-card muted"><strong>dds_demo_none</strong><span>접속만 허용</span><small>데이터 권한 없음 · default deny</small></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user