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

@@ -2,13 +2,105 @@
## Objetivo
Demonstrar o risco de uma conta técnica de aplicação usada por muitos usuários e como a política no banco deve considerar o usuário final.
Demonstrar o risco de uma conta tecnica de aplicacao usada por muitos usuarios e como o banco deve aplicar autorizacao com base no usuario final.
## Narrativa
## O Que Este Lab Mostra
Uma aplicação conecta ao banco com uma conta técnica. Sem contexto de usuário final, qualquer falha na aplicação ou SQL dinâmico pode expor dados além do necessário. Com Deep Data Security, o banco avalia data grants no contexto do end user propagado.
Antes do Oracle Deep Data Security, uma conta tecnica ou connection pool pode consultar pedidos de todos os vendedores e regioes. Depois dos data grants, o retorno passa a depender da persona propagada pela aplicacao.
## Resultado Esperado
## Personas
O usuário final vê apenas seus pedidos ou os pedidos da sua região, mesmo que a conta técnica tenha conectividade com o banco.
- `alice`: vendedora.
- `bruno`: gerente LATAM.
- `dds_app`: conta tecnica da aplicacao.
## 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>"
```
Exemplo:
```text
ADMIN/<senha>@ddslab_high
```
## Passo A Passo - Antes, Ambiente Vulneravel
1. Acesse o banco:
```bash
sql "<connect_string>"
```
2. Limpe o cenario:
```sql
@scenarios/02-shared-app-account/sql/99_reset.sql
```
3. Crie tabela, dados, usuarios e conta tecnica:
```sql
@scenarios/02-shared-app-account/sql/00_schema.sql
@scenarios/02-shared-app-account/sql/01_seed_data.sql
@scenarios/02-shared-app-account/sql/02_identities.sql
```
4. Simule uma aplicacao consultando pedidos com SQL amplo:
```sql
@scenarios/02-shared-app-account/sql/04_test_queries.sql
```
Resultado esperado antes: pedidos de varias regioes e campos como `MARGIN` podem aparecer para quem nao deveria.
## Passo A Passo - Depois, Com Deep Data Security
1. Aplique os data grants:
```sql
@scenarios/02-shared-app-account/sql/03_data_grants.sql
```
2. Execute novamente a consulta:
```sql
@scenarios/02-shared-app-account/sql/04_test_queries.sql
```
3. Repita o teste simulando `alice` e `bruno` como usuarios finais.
Resultado esperado depois:
- `alice` ve somente seus pedidos e nao ve `MARGIN`.
- `bruno` ve pedidos LATAM com visao gerencial.
- A conta tecnica deixa de ser o unico ponto de autorizacao.
## Execucao Automatizada Opcional
Windows:
```powershell
powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 02-shared-app-account -ConnectString "<connect_string>"
```
Linux/macOS:
```bash
./scripts/run-scenario.sh 02-shared-app-account "<connect_string>"
```
## Detalhes Da Demo
Veja o passo a passo completo, evidencias e referencias oficiais em [RUNBOOK.md](RUNBOOK.md).