# 06 - RAG Vector Classified Docs ## Objetivo Demonstrar que um agente RAG ou copilot interno so recupera documentos e chunks autorizados para o usuario final antes de enviar contexto ao LLM. ## O Que Este Lab Mostra Antes do Oracle Deep Data Security, a busca vetorial pode recuperar chunks confidenciais de RH, juridico e executivo. Depois dos data grants, a recuperacao vetorial respeita a classificacao do documento e a persona do usuario. ## Personas - `nina`: colaboradora comum. - `heitor`: RH. - `sofia`: juridico. - `carlos`: executivo. ## 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 "" ``` Este cenario usa tipo `VECTOR`, `TO_VECTOR` e `VECTOR_DISTANCE`. Use uma versao do banco com suporte a Oracle AI Vector Search. ## Passo A Passo - Antes, Ambiente Vulneravel 1. Acesse o banco: ```bash sql "" ``` 2. Limpe o cenario: ```sql @scenarios/06-rag-vector-classified-docs/sql/99_reset.sql ``` 3. Crie a tabela de chunks, embeddings simples e personas: ```sql @scenarios/06-rag-vector-classified-docs/sql/00_schema.sql @scenarios/06-rag-vector-classified-docs/sql/01_seed_data.sql @scenarios/06-rag-vector-classified-docs/sql/02_identities.sql ``` 4. Simule a pergunta RAG: ```text Resuma documentos criticos sobre renovacoes, pessoas e riscos legais. ``` 5. Execute a busca vetorial: ```sql @scenarios/06-rag-vector-classified-docs/sql/04_test_queries.sql ``` Resultado esperado antes: a busca pode recuperar chunks `HR_CONFIDENTIAL`, `LEGAL_CONFIDENTIAL` e `EXECUTIVE_CONFIDENTIAL`. ## Passo A Passo - Depois, Com Deep Data Security 1. Aplique os data grants por classificacao: ```sql @scenarios/06-rag-vector-classified-docs/sql/03_data_grants.sql ``` 2. Execute novamente a mesma busca vetorial: ```sql @scenarios/06-rag-vector-classified-docs/sql/04_test_queries.sql ``` 3. Repita a demonstracao simulando `nina`, `heitor`, `sofia` e `carlos`. Resultado esperado depois: - `nina` ve apenas chunks `PUBLIC` e `INTERNAL`. - `heitor` ve conteudo de RH autorizado. - `sofia` ve conteudo juridico autorizado. - `carlos` ve todos os documentos por perfil executivo. - O LLM recebe somente contexto autorizado. ## Execucao Automatizada Opcional Windows: ```powershell powershell -ExecutionPolicy Bypass -File .\scripts\run-scenario.ps1 -Scenario 06-rag-vector-classified-docs -ConnectString "" ``` Linux/macOS: ```bash ./scripts/run-scenario.sh 06-rag-vector-classified-docs "" ``` ## Detalhes Da Demo Veja o passo a passo completo, evidencias e referencias oficiais em [RUNBOOK.md](RUNBOOK.md).