# Runbook - 02 Shared App Account ## Objetivo Demonstrar que uma conta tecnica compartilhada de aplicacao nao deve ser a fronteira real de autorizacao de dados. ## Valor De Seguranca - Reduz o risco de connection pools com privilegios excessivos. - Permite que o banco avalie o usuario final, e nao apenas a conta tecnica. - Ajuda a proteger aplicacoes web, APIs, BI e agentes que usam contas compartilhadas. ## Pre-Requisitos - Banco Oracle AI Database compativel com Oracle Deep Data Security. - SQLcl ou SQL*Plus. - Entendimento de qual identidade final sera propagada pela aplicacao. ## Antes - Ambiente Vulneravel 1. Limpe o cenario: ```sql @scenarios/02-shared-app-account/sql/99_reset.sql ``` 2. Crie a tabela, dados 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 ``` 3. Simule uma aplicacao ou API usando a conta `DDS_APP` para consultar todos os pedidos: ```sql @scenarios/02-shared-app-account/sql/04_test_queries.sql ``` ## Resultado Esperado Antes - A conta compartilhada consegue enxergar pedidos de todos os vendedores e regioes. - Campos como `MARGIN` podem ficar expostos se a aplicacao gerar SQL incorreto. - Um bug, prompt injection ou endpoint abusado pode consultar mais dados do que o usuario deveria ver. ## Depois - Aplicando Deep Data Security 1. Aplique data grants por papel de negocio: ```sql @scenarios/02-shared-app-account/sql/03_data_grants.sql ``` 2. Execute a mesma query no contexto de `alice` e `bruno`: ```sql @scenarios/02-shared-app-account/sql/04_test_queries.sql ``` ## Resultado Esperado Depois - `alice` ve somente seus pedidos e nao ve `margin`. - `bruno` ve pedidos LATAM com acesso gerencial. - A conta tecnica deixa de ser a unica fronteira de seguranca. ## Evidencias Para Demo - Comparacao antes/depois do mesmo SQL. - Explicacao do uso de data roles. - Diagrama simples: usuario final -> app -> banco -> data grants. ## Referencias Oficiais - Oracle Deep Data Security Guide: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/index.html - Fine-Grained Data Authorization: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/fine-grained-data-authorization.html - Create Data Grants: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/create-data-grants.html - End-User Security Contexts: https://docs.oracle.com/en/database/oracle/oracle-database/26/refrn/DBA_END_USER_SECURITY_CONTEXTS.html