- Segurança em Nível de Linha (RLS): Controla quais registros os usuários podem acessar.
- Segurança em Nível de Campo (FLS): Controla quais campos dentro dos registros os usuários podem acessar.
O acesso por service role ignora essas regras:
base44.asServiceRole ignora completamente o RLS e o FLS, independentemente de como a entidade está configurada. Assim, você não precisa de uma regra de admin correspondente para que ele leia ou grave um registro. Ele só está disponível em backend functions hospedadas na Base44, e sua função é responsável por quaisquer verificações de acesso de que precisar.Tipos de permissão
Cada nível de segurança tem diferentes permissões que você pode definir. Para cada permissão, você define quem está autorizado a realizar a ação.Segurança em Nível de Linha (RLS)
create- Adicionar novos registrosread- Visualizar registrosupdate- Modificar registrosdelete- Remover registros
Segurança em Nível de Campo (FLS)
read- Visualizar o campowrite- Criar ou modificar o campo
Valores de permissão
Cada permissão aceita um dos seguintes valores:true- Permite todos os usuáriosfalse- Bloqueia todos os usuários{<condition>}- Permite usuários que correspondem à condição
Como leituras e gravações negadas diferem
Leituras negadas se comportam como se os dados não existissem, então não revelam o que há lá. Gravações negadas lançam um erro, então uma alteração bloqueada nunca falha em silêncio.Sintaxe de condição
Ao usar{<condition>} como valor de permissão, você pode definir regras que verificam atributos ou funções do usuário.
Uma condição que referencia
{{user.*}} ou usa user_condition exige um chamador autenticado. Um chamador anônimo não tem usuário para comparar, então a regra o bloqueia diretamente em vez de ser avaliada como falsa.created_by- E-mail do usuário que criou o registrocreated_by_id- ID do usuário que criou o registroentity_name- Nome do tipo de entidadeapp_id- ID do appenvironment- Ouprodoudevis_sample- Se é dado de amostrais_deleted- Flag de soft deletedeleted_date- Quando foi excluídodata.*- Qualquer campo das propriedades do schema da sua entidade
{{user.email}}- E-mail do usuário{{user.id}}- ID do usuário{{user.role}}- Função do usuário{{user.data.*}}- Campos adicionais de usuário que você define
user_condition.
Campos de usuário que você pode verificar:
email- E-mail do usuárioid- ID do usuáriorole- Função do usuáriodata.*- Campos customizados de usuário
$or, $and, $nor, $in, $nin, $all
Exemplo:
Exemplo de Segurança em Nível de Linha (RLS)
Adicionerls no nível da entidade:
Exemplo de Segurança em Nível de Campo (FLS)
Adicionerls às propriedades de campo individuais:
Exemplo completo com segurança
Aqui está um schema de entidade com RLS e FLS:Implantando regras de segurança
As regras de segurança fazem parte do seu schema de entidade. Após adicionar ou atualizar regras de segurança, implante usandoentities push. As regras de segurança também são implantadas automaticamente quando você executa o comando deploy para implantar todo o seu projeto.
Veja também
- Visão geral de Entidades: Saiba sobre configuração de schema do banco de dados
- Schemas de Entidade: Defina a estrutura da sua entidade
- User Schema: Entidade integrada especial para autenticação de usuário
- Acesso a dados por service role: Leia e grave dados sem que as regras de acesso se apliquem
- Estrutura do projeto: Como schemas de entidade se encaixam no seu projeto
Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a versão em inglês.