Expand scenario READMEs with step-by-step execution guides
Some checks failed
Repo Quality / structure (push) Has been cancelled
Some checks failed
Repo Quality / structure (push) Has been cancelled
This commit is contained in:
@@ -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).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user