1.4 KiB
ADR-007 — RLS e autorização SQL
- Estado: Aceite como gate de segurança; activação por tabela bloqueada até matriz de papéis e contexto aprovada.
- Data: 2026-10-01
- Contexto: baseline não encontrou
ENABLE/FORCE ROW LEVEL SECURITYouCREATE POLICY; permissões SQL e bypass não foram auditados. Decisões anteriores proíbem inventar roles/tenants.
Decisão
Preservar Policies/Gates da aplicação como autorização obrigatória e não declarar RLS activo. Antes de expor dados protegidos a mais de um actor, aprovar matriz de papéis, fronteiras de isolamento/tenant, contas de runtime/migration e comportamento para jobs. Depois, aplicar RLS em tabelas e operações explicitamente mapeadas, usando papel runtime sem propriedade/BYPASSRLS, políticas USING/WITH CHECK, e FORCE ROW LEVEL SECURITY quando compatível com operações técnicas. Contexto por pedido deve ser transaccional e limpo ao devolver conexão ao pool. Garantir testes permitidos e negados, inclusive acesso SQL directo e papel privilegiado conforme ameaça.
Alternativas e consequências
RLS genérico com tenant inventado é rejeitado; RLS desligado como se fosse controlo é igualmente rejeitado. Até a matriz e auditoria serem aprovadas, a cobertura permanece bloqueada e a aplicação não deve alegar isolamento na camada SQL. Sem alteração funcional nesta Etapa 1.