Files
oracle-deep-data-security-lab/scenarios/03-pii-row-column-cell/RUNBOOK.md
Rodrigo Pace 09bb0df326
Some checks failed
Repo Quality / structure (push) Has been cancelled
Add scenario runbooks and documentation updates
2026-05-08 13:23:37 -03:00

80 lines
2.4 KiB
Markdown

# Runbook - 03 PII Row Column Cell
## Objetivo
Demonstrar controle fino de PII em linhas, colunas e celulas: funcionario ve seu proprio registro, gerente ve subordinados com SSN oculto, e RH ve dados sensiveis.
## Valor De Seguranca
- Protege PII e dados salariais.
- Demonstra controle de coluna e celula, nao apenas RBAC simples.
- Ajuda em conversas de LGPD, privacidade, RH e segregacao de funcoes.
## Pre-Requisitos
- Banco Oracle AI Database compativel com Oracle Deep Data Security.
- SQLcl ou SQL*Plus.
- Usuario com privilegios para criar data grants.
## Antes - Ambiente Vulneravel
1. Limpe o cenario:
```sql
@scenarios/03-pii-row-column-cell/sql/99_reset.sql
```
2. Crie dados e personas, sem data grants:
```sql
@scenarios/03-pii-row-column-cell/sql/00_schema.sql
@scenarios/03-pii-row-column-cell/sql/01_seed_data.sql
@scenarios/03-pii-row-column-cell/sql/02_identities.sql
```
3. Execute a consulta ampla:
```sql
@scenarios/03-pii-row-column-cell/sql/04_test_queries.sql
```
## Resultado Esperado Antes
- Todos os funcionarios aparecem.
- `SSN` e `SALARY` ficam visiveis para quem tiver acesso amplo ao objeto.
- Um gerente ou usuario operacional poderia ver PII alem do necessario se a aplicacao falhar.
## Depois - Aplicando Deep Data Security
1. Aplique data grants de funcionario, gerente e RH:
```sql
@scenarios/03-pii-row-column-cell/sql/03_data_grants.sql
```
2. Execute a mesma consulta como `emma`, `marvin` e `victoria`:
```sql
@scenarios/03-pii-row-column-cell/sql/04_test_queries.sql
```
## Resultado Esperado Depois
- `emma` ve somente seu proprio registro.
- `marvin` ve seu registro e subordinados, mas SSN dos subordinados aparece como `NULL`.
- `victoria` ve todos os registros por papel de RH.
- Atualizacao de telefone e permitida apenas na linha autorizada.
## Evidencias Para Demo
- Screenshot mostrando `SSN` como `NULL` para gerente.
- Query de update de telefone funcionando no proprio registro.
- Explicacao de row, column e cell-level access.
## Referencias Oficiais
- 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
- CREATE DATA GRANT SQL Reference: https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/create-data-grant.html