Software e IA para executivos · Capítulo 18 de 41 · 9 min
Provar que um cliente nunca vê o dado do outro
Isolamento entre clientes se prova com teste, e a regra por linha do banco tem limites que a demonstração comercial não mostra.
Este capítulo faz parte do curso gratuito Software e IA para executivos.
Um erro de isolamento entre clientes, num produto que atende vários deles no mesmo banco, vira incidente isolado ou motivo de notificação à autoridade de proteção de dados.
Verificar essa proteção exige uma pergunta única para qualquer fornecedor e uma lista do que cobrar de uma plataforma gerenciada.
O risco ganhou escala em setembro. Uma varredura da UpGuard em cerca de 300 mil domínios, relatada pelo TechCrunch em 25/09/2026, achou 16.326 bancos Supabase com tabelas legíveis por qualquer pessoa. Mais da metade tinha indícios de dados pessoais.
A causa apontada é código gerado por ferramentas de IA, entre elas Claude Code, Cursor, Bolt e Lovable, com a regra de acesso por linha desligada.
RLS, a regra de acesso por linha aplicada pelo banco, é a resposta a esse risco. No Supabase, toda tabela exposta à interface de consulta de dados precisa dessa proteção junto das permissões corretas.
Uma política bem escrita limita quais registros a credencial pode acessar, mesmo quando a consulta pede todos. Ligar a regra, sozinho, não prova isolamento: política errada pode permitir acesso maior do que deveria.
Quando o acesso passa por uma API executada no servidor, ela também aplica autorização centralizada. O critério é o mesmo nos dois desenhos: provar que nenhum caminho, incluindo relatório e suporte, permite acesso entre clientes.
Tabela compartilhada, esquema separado e banco separado são alternativas com custo e controle distintos. A equipe técnica justifica o desenho; você cobra evidência de isolamento e custo de mudança.
Plataforma gerenciada tem calendário próprio, e ele não passa pela sua reunião de planejamento. Entre julho e agosto de 2026 o Supabase fechou o esquema de tempo real e parou de respeitar a fixação de versão de extensão.
O endpoint logs.all, endereço de consulta dos registros pela interface de gestão, tinha remoção marcada para 23/09/2026. Integrações que o usavam precisam ler de logs, com consultas em ClickHouse SQL, conforme o aviso de 23/07. Peça a prova de que essa migração já rodou.
Um fornecedor pode mostrar que toda listagem do sistema já filtra pelo identificador do cliente logado e chamar isso de equivalente a ter a regra dentro do banco.
No caminho feliz o resultado na tela é igual. É por isso que a demonstração comercial nunca mostra a diferença.
A diferença aparece na rota criada às pressas e no endereço de exportação copiado de outro projeto. Aparece também no painel de suporte que consulta a tabela direto. O desenho seguro é o que continua certo quando alguém esquece.
Peça que o fornecedor mostre o que impede o cliente A de ver o dado do cliente B. Peça uma demonstração acompanhada em homologação, com dados sintéticos, ou um relatório de testes de isolamento.
O responsável técnico explica quais caminhos são permitidos, onde a autorização é aplicada e quais credenciais podem contorná-la. Uma promessa sem teste não é prova de proteção.
Laboratório ao vivo: quem vê qual linha
1. Quem abriu o portal agora
2. Como a tabela limita as linhas
Neste exemplo, os três perfis têm permissão para consultar a tabela, chamada grant. A consulta pede todos os pedidos. Com RLS ligada, as políticas limitam as linhas devolvidas.
3. O que o banco devolve
Política em vigor: devolver a linha só quando o cliente dono for quem está logado
Política em vigor: devolver a linha só quando o cliente dono for quem está logado
Política em vigor: o perfil da distribuidora enxerga todos os clientes
RLS desligada: a permissão de leitura deste exemplo permite consultar todos os pedidos
| Pedido | Cliente dono | Valor |
|---|---|---|
| 4102 | Construtora Vale | R$ 18.400 |
| 4118 | Construtora Vale | R$ 2.950 |
| 4127 | Depósito Serra | R$ 7.310 |
| 4131 | Depósito Serra | R$ 11.870 |
| 4140 | Marcenaria Norte | R$ 640 |
Com as políticas do exemplo, cada cliente vê seus pedidos; a administradora vê todos.
Neste cenário, desligar a RLS libera as cinco linhas para os três perfis. Em outros desenhos, uma autorização central no servidor pode limitar o acesso; esconder linhas na tela não protege os dados.
RLS depende das permissões e das políticas configuradas. Credenciais privilegiadas podem ignorá-la. Teste o acesso de cada perfil e mantenha essas credenciais fora do navegador.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Pergunte também quem guarda a chave administrativa que ignora as políticas, em quantos sistemas ela existe e o que acontece se aparecer no navegador do cliente. Uma chave dessas no lugar errado contorna toda a proteção construída.
Peça o calendário de quebras da plataforma dos últimos noventa dias, com o que muda e até quando. Ninguém acompanhar esse calendário é como deixar um painel de auditoria parar de funcionar sem aviso.
Guia: auditar o isolamento de um app no Supabase em uma semana
| Passo | Quem faz | Prazo | O que entregar | Como conferir |
|---|---|---|---|---|
| 1. Listar as tabelas que a interface de dados expõe | Desenvolvedor responsável | 1 hora | Lista de tabelas públicas, com RLS ligado ou desligado | Nenhuma tabela exposta com RLS desligado |
| 2. Escrever a política de cada tabela | Desenvolvedor | 1 a 2 dias | Migração com as políticas, revisada por outra pessoa | Pedido de mudança aprovado por quem não escreveu |
| 3. Testar com dois clientes diferentes | Quem testa, com dados sintéticos | 2 horas | Registro do teste com o usuário A pedindo dados do B | Zero linhas do cliente B na resposta |
| 4. Testar sem login, só com a chave pública | Desenvolvedor | 30 minutos | Consulta anônima registrada | Resposta vazia ou recusada |
| 5. Localizar a chave administrativa | Responsável técnico | 1 hora | Inventário de onde ela está guardada | Ausente do navegador, do repositório e dos registros |
| 6. Automatizar o teste do passo 3 | Plataforma | 1 dia | Teste de isolamento na esteira de entrega | Entrega barrada quando o teste falha |
Schema é o desenho das tabelas e das relações entre elas, a planta baixa do arquivo permanente da empresa.
Migração é o arquivo versionado de cada alteração desse desenho, o que torna a mudança auditável e reproduzível.
RLS limita o acesso por linha conforme a credencial e as políticas ativas em cada tabela.
Índice é a estrutura que deixa o banco achar a linha certa sem ler a tabela inteira, e explica boa parte da lentidão que o cliente sente.
Restauração no tempo é a cópia capaz de devolver o banco a um segundo específico do passado, dentro da janela contratada.
A decisão que cabe a você é aprovar a arquitetura quando o responsável técnico demonstrar isolamento entre clientes em todos os caminhos, inclusive relatório e suporte.
No Supabase com a interface de consulta exposta, isso cobre RLS e permissões revisadas. Numa API de servidor, cobre autorização centralizada e testes dos caminhos de acesso.
O time decide o desenho das tabelas, os índices e a estratégia de cada migração. Peça por escrito três itens: a data e a duração do último teste de restauração, a janela de retenção contratada e o calendário de quebras da plataforma. Se faltar um dos três, a arquitetura ainda não está pronta para aprovação.
Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Veja o que estudar antes e para onde seguir depois, explore os conceitos e compare abordagens em outros cursos. Sugestões marcadas como “sugerido pelo grafo” vêm dos assuntos em comum, não do índice do curso.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- Engenharia de Software para ExecutivosExigir a cópia de dados que volta no desastreExaminar conexões de Exigir a cópia de dados que volta no desastre
- MCP para quem decideMedir o grau de poder de cada servidorExaminar conexões de Medir o grau de poder de cada servidor
- Deploy para decisão executivaPlano de saída: o que o fornecedor não devolveExaminar conexões de Plano de saída: o que o fornecedor não devolve
- RAG em produçãoO portão que impede a melhoria de piorar o restoExaminar conexões de O portão que impede a melhoria de piorar o resto
Voltar ao capítulo anterior: Mudar o banco sem parar a empresa
Leve uma ideia para a prática
Escolha uma atividade no painel e volte a este curso quando quiser.
Atividades e evolução ficam reunidas no painel da sua conta.
Capítulos vizinhos em Software e IA para executivos
- 16Cobrar o desenho das tabelas antes de aprovar o sistema
- 17Mudar o banco sem parar a empresa
- 18Provar que um cliente nunca vê o dado do outro
- 19Saber o que protege o dado quando o atacante ignora a tela
- 20Escolher o modelo de sessão pela rapidez de cortar um acesso