O que é segurança em nível de linha?
Segurança em nível de linha (row-level security, ou RLS) é um recurso do banco de dados que decide, linha por linha, quais registros cada usuário pode ler ou alterar, de modo que um cliente veja apenas os próprios pedidos, mesmo que o app peça mais.
Sem ela, a regra "usuários veem somente os próprios dados" fica no código do app. Se uma tela ou uma API esquecer de verificar, dados privados podem vazar.
Com a segurança em nível de linha, a regra fica no próprio banco de dados. Você escreve uma política como "uma linha de pedidos só é visível quando seu customer_id corresponde ao usuário conectado", e o banco de dados aplica essa política a cada consulta.
O Postgres oferece segurança em nível de linha, e alguns serviços de backend dependem dela com força porque seus apps conversam com o banco de dados diretamente a partir do navegador. Nessas configurações, uma tabela sem política pode ser lida por qualquer pessoa.
A RLS é uma camada de proteção, não a única. Os apps ainda precisam de login adequado, verificações no servidor e cuidado com o acesso de administradores.
Exemplos
- Clientes em um portal veem apenas os próprios documentos
- Cada equipe em uma ferramenta vê apenas os próprios projetos
Perguntas
Eu preciso de segurança em nível de linha?
Se o seu app guarda dados privados de muitos usuários e alguma parte dele consulta o banco de dados diretamente pelo navegador, sim. Se todo acesso passa por um backend que verifica permissões, a RLS é uma rede de segurança extra.
Segurança em nível de linha é o mesmo que perfis de usuário?
Não. Os perfis descrevem que tipo de usuário alguém é, como administrador ou membro. A segurança em nível de linha usa dados como o id ou o perfil do usuário para decidir quais linhas específicas ele pode acessar.
Veja também
Mythex · Pricing · Crie qualquer coisa com IA · Templates de sites e apps · Mythex comparado · Glossário de criação de apps com IA · Ferramentas grátis para criar apps com IA · English