Wire DDS variant into run.sh as optional subcommands
Adds dds / dds-setup / dds-tests / dds-teardown subcommands so the 26ai Deep Data Security variant can be run from the same one-click entry point. Not part of `./run.sh all` since DDS requires 26ai (23.26.2+) which not every ADB has. - sql/adb/14_tests_dds_user.sql: shared verification script for all 4 ddsuser_*; uses WHENEVER SQLERROR CONTINUE so the expected ORA-00942 (deny-by-hiding) doesn't abort the script. Includes bypass attempts against the underlying VPD views, raw DB Links, and the VPD permission tables. - sql/adb/15_dds_cleanup.sql: idempotent teardown for DDS objects (data grants, end users, data roles, dds_db_role, DDS-only views). - run.sh: do_dds_prereq / do_dds_setup / do_dds_tests / do_dds_teardown helpers; dispatch case extended. Also fixes a pre-existing secrets-leak gap: both 07_end_users.sql and 13_dds_variant.sql had SET DEFINE ON without SET VERIFY OFF, which causes sqlplus to echo the substituted DDL (including the IDENTIFIED BY <password> clause) on the `new 1:` line. Added SET VERIFY OFF. E2E re-verified on ADB 23.26.2.2.0: matrix identical to manual run (MY=17 / PG=12 / BOTH=12+17 / NONE=ORA-00942 on both), no password in logs, dds-teardown leaves no residue. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
15
README.md
15
README.md
@@ -58,6 +58,17 @@ $EDITOR .env
|
||||
./run.sh teardown # ADB 측 객체 + DB Link/credential 정리
|
||||
```
|
||||
|
||||
(선택) Oracle 26ai **Deep Data Security** 변형도 같은 시나리오를 declarative SQL 로
|
||||
재현합니다. VPD 데모와 공존하며 별도 ddsuser_*/v_dds_* 객체로 깔립니다.
|
||||
([docs/05-dds-variant.md](docs/05-dds-variant.md))
|
||||
|
||||
```bash
|
||||
./run.sh dds # dds-setup + dds-tests
|
||||
./run.sh dds-setup # 13_dds_variant.sql 적용
|
||||
./run.sh dds-tests # ddsuser_* 4명 매트릭스 검증
|
||||
./run.sh dds-teardown # DDS 객체만 정리 (VPD 데모는 보존)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 사전 준비
|
||||
@@ -129,7 +140,9 @@ $EDITOR .env
|
||||
│ ├── 10_tests_user_both.sql # both
|
||||
│ ├── 11_tests_user_none.sql # default deny (fail-closed) 검증
|
||||
│ ├── 12_tests_admin_audit.sql
|
||||
│ └── 13_dds_variant.sql # (선택) 같은 4-user 매트릭스를 26ai Deep Data Security 로 재구현
|
||||
│ ├── 13_dds_variant.sql # (선택) 같은 4-user 매트릭스를 26ai Deep Data Security 로 재구현
|
||||
│ ├── 14_tests_dds_user.sql # (선택) ddsuser_* 공용 매트릭스 검증 + bypass 시도
|
||||
│ └── 15_dds_cleanup.sql # (선택) DDS 객체 멱등 정리
|
||||
└── docs/
|
||||
├── 03-detailed-guide.md # 한국어 상세 설명 (아키텍처, 정책 로직, 운영 고려사항)
|
||||
└── 05-dds-variant.md # (선택) VPD ↔ DDS 1:1 매핑 + 26ai 변형 사용법
|
||||
|
||||
Reference in New Issue
Block a user