# 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 "" ``` Exemplo: ```text ADMIN/@ddslab_high ``` ## Passo A Passo - Antes, Ambiente Vulneravel 1. Acesse o banco: ```bash sql "" ``` 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 "" ``` Linux/macOS: ```bash ./scripts/run-scenario.sh 02-shared-app-account "" ``` ## Detalhes Da Demo Veja o passo a passo completo, evidencias e referencias oficiais em [RUNBOOK.md](RUNBOOK.md).