107 lines
2.4 KiB
Markdown
107 lines
2.4 KiB
Markdown
# 02 - Shared App Account
|
|
|
|
## Objetivo
|
|
|
|
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.
|
|
|
|
## O Que Este Lab Mostra
|
|
|
|
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.
|
|
|
|
## Personas
|
|
|
|
- `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).
|
|
|