Expand scenario READMEs with step-by-step execution guides
Some checks failed
Repo Quality / structure (push) Has been cancelled

This commit is contained in:
Rodrigo Pace
2026-05-08 13:39:13 -03:00
parent 4248b3b1eb
commit cde150b705
7 changed files with 667 additions and 71 deletions

View File

@@ -1,10 +1,101 @@
# 04 - View Bypass / Mandatory Access Control
# 04 - View Bypass Mandatory Access Control
## Objetivo
Demonstrar que views e caminhos alternativos de acesso não devem contornar a política da tabela base.
Demonstrar que views e caminhos alternativos de acesso nao devem contornar a politica da tabela base.
## Narrativa
## O Que Este Lab Mostra
Uma view legada expõe todos os dados. Com `USE DATA GRANTS ONLY`, a política da tabela base passa a ser aplicada de forma uniforme.
Antes do Oracle Deep Data Security, uma view legada pode expor linhas que deveriam estar protegidas. Depois de aplicar data grants e `USE DATA GRANTS ONLY`, tabela e view respeitam a mesma fronteira de acesso.
## Personas
- `emma`: dona de conta.
- `marvin`: dono de conta.
## Onde Executar Os Comandos
Execute os comandos a partir da raiz do repositorio:
```powershell
cd C:\Users\rodrigo\Documents\Codex\oracle-deep-data-security-lab
```
Conecte no banco com SQLcl ou SQL*Plus:
```bash
sql "<connect_string>"
```
## Passo A Passo - Antes, Ambiente Vulneravel
1. Acesse o banco:
```bash
sql "<connect_string>"
```
2. Limpe o cenario:
```sql
@scenarios/04-view-bypass-mac/sql/99_reset.sql
```
3. Crie tabela, view, dados e personas:
```sql
@scenarios/04-view-bypass-mac/sql/00_schema.sql
@scenarios/04-view-bypass-mac/sql/01_seed_data.sql
@scenarios/04-view-bypass-mac/sql/02_identities.sql
```
4. Consulte a view legada:
```sql
SELECT account_id, account_name, owner_name, region, balance
FROM dds_mac_accounts_view
ORDER BY account_id;
```
Resultado esperado antes: a view pode mostrar contas de outros donos.
## Passo A Passo - Depois, Com Deep Data Security
1. Aplique data grants e Mandatory Access Control:
```sql
@scenarios/04-view-bypass-mac/sql/03_data_grants.sql
```
2. Execute as consultas na tabela base e na view:
```sql
@scenarios/04-view-bypass-mac/sql/04_test_queries.sql
```
3. Repita o teste simulando `emma` e `marvin`.
Resultado esperado depois:
- A tabela retorna apenas a conta autorizada.
- A view retorna o mesmo subconjunto.
- O caminho alternativo deixa de funcionar como bypass.
## Execucao Automatizada Opcional
Windows:
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 04-view-bypass-mac -ConnectString "<connect_string>"
```
Linux/macOS:
```bash
./scripts/run-scenario.sh 04-view-bypass-mac "<connect_string>"
```
## Detalhes Da Demo
Veja o passo a passo completo, evidencias e referencias oficiais em [RUNBOOK.md](RUNBOOK.md).