Skip to main content
Esta página faz parte de uma habilidade de agente de código IA e é escrita para agentes, não para humanos. Para a documentação legível por humanos da Base44, veja a documentação para desenvolvedores.

Exemplos RLS

Padrões práticos de Segurança em Nível de Linha para tipos comuns de aplicativos. Importante: O RLS da Base44 suporta:
  • Operadores lógicos: $or, $and, $nor para combinar condições
  • Operadores de campo (para campos data.*): $in, $nin, $ne, $all
  • user_condition: Apenas igualdade (sem operadores)

Conteúdo


Padrões simples (JSON Schema)

Estes padrões funcionam com o formato RLS de JSON schema.

Aplicativo de tarefas - Acesso apenas do proprietário

Os usuários veem e gerenciam apenas suas próprias tarefas.

Formulário de contato - Criação pública, leitura apenas de administrador

Qualquer um pode enviar, apenas administradores podem visualizar submissões.

Perfil de usuário - Autogerenciamento

Os usuários só podem acessar seu próprio perfil.

Dados de departamento - Acesso do mesmo departamento

Os usuários só podem ver registros do seu departamento.

Assinatura - Gerenciada por admin, legível pelo usuário via campo de e-mail

Nota: Este padrão permite apenas que os usuários leiam sua própria assinatura. Administradores precisam usar a UI do painel para configurar acesso de leitura adicional para si mesmos.

Dados privados - Apenas proprietário

Leitura pública, escrita autenticada

Qualquer um pode ler, apenas usuários logados podem criar/editar seus próprios registros.

Usando operadores

Operadores lógicos

Combine várias condições usando $or, $and ou $nor: Acesso de proprietário OU administrador:
Várias funções com $or:

Operadores de campo para campos data.*

Use $in, $nin, $ne, $all para comparar campos de dados de entidade: Acesso baseado em tags ($in):
Excluir status específicos ($nin):
Diferente ($ne):
Todas as tags devem corresponder ($all):

Combinando operadores lógicos e de campo


Exemplos de segurança em nível de campo

Controle o acesso a campos específicos dentro de uma entidade.

Campo de salário sensível

Campos internos apenas para admin


Padrões complexos (UI do Dashboard ou Backend)

Alguns padrões ainda podem exigir a UI do painel ou funções de backend.

Relacionamentos bidirecionais (por exemplo, amizades, correspondências)

Requisito: Qualquer uma das partes em um relacionamento deve ter acesso. Agora possível com $or:
Soluções alternativas:
  1. Redesign de entidade: Armazenar dois registros por relacionamento (um para cada parte)
  2. Função de backend: Consultar com lógica personalizada

Lógica de negócios complexa

Requisito: O acesso depende de vários campos de entidade com condições complexas. Limitação do JSON Schema: Embora os operadores ajudem, lógica de negócios muito complexa pode ainda ser difícil de expressar. Opções de solução:
  1. Função de backend: Implementar lógica de acesso personalizada
  2. Combinar regras mais simples: Dividir regras complexas em regras mais simples de nível de entidade e nível de campo

Melhores práticas

Estratégia de segurança

Use uma combinação de RLS em nível de entidade e segurança em nível de campo:

Quando usar cada abordagem

Padrões comuns de função

Resumo dos operadores suportados

Resumo de limitações

Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a versão em inglês.