> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gerenciando permissões de dados

A Base44 configura automaticamente as permissões de dados conforme você constrói seu app. Você pode ajustá-las a qualquer momento usando o chat de IA, ou configurá-las manualmente se precisar de mais controle. Se as permissões não forem configuradas corretamente, as pessoas erradas podem ver ou alterar dados no seu app.

<Tip>
  Para definir quem pode abrir seu app e se precisam fazer login, veja [Gerenciando acesso e papéis do app](/Setting-up-your-app/Managing-access#setting-your-app-visibility).
</Tip>

***

## Usando o chat de IA para definir permissões

Você não precisa configurar permissões manualmente. Diga ao chat de IA como seu app deve funcionar em linguagem simples, e ele configura as regras corretas para você. Isso funciona quando você está construindo seu app pela primeira vez e em qualquer momento depois, quando suas necessidades mudarem. Se precisar atualizar regras existentes, ele pede sua aprovação primeiro.

**Aqui estão alguns exemplos de prompts que você pode usar:**

```text theme={null}
Only the person who submitted an order should be able to see it.
```

```text theme={null}
Admins should have full access to all client details. Regular users should only see their own.
```

```text theme={null}
Anyone can browse the product catalog, but only managers can add or update listings.
```

***

## Personalizando permissões manualmente

Se quiser revisar ou ajustar as permissões em uma tabela de dados específica, pode fazer isso na página **Permissions** da tabela no seu dashboard. A página abre em uma visualização somente leitura mostrando suas regras atuais. Clique em **Edit** para fazer mudanças.

<Tip>
  Não sabe quais regras definir? Descreva o que precisa para o chat de IA em linguagem simples e ele configura as permissões para você. A configuração manual está lá para quando precisar de controle mais preciso.
</Tip>

**Para personalizar permissões de uma tabela de dados:**

1. Clique em **Dashboard** no editor do seu app.
2. Em **Data**, clique na tabela que quer gerenciar.
3. Clique em **Permissions** no canto superior direito da página. Se houver problemas de permissão, você vê um ícone de aviso no botão.
4. Clique em **Edit** para abrir o painel **Configure permissions**.
5. Marque as caixas para as ações que você quer que cada regra cubra: **Create** (adicionar registros), **Read** (visualizar registros), **Update** (editar registros) e **Delete** (remover registros).
6. Se marcar uma caixa para **Entity-User Field Comparison**, digite o campo desta tabela para comparar em **Entity field**, depois escolha a propriedade de usuário correspondente no drop-down **User field**.
7. Se marcar uma caixa para **User Property Check**, escolha a propriedade do usuário no drop-down **User property** e defina o valor obrigatório.
8. Clique em **Save**.

<Frame caption="Gerenciando permissões para seus dados">
  <img src="https://mintcdn.com/base44/TTMXLUWSXYdGDb63/images/edit-permissions.png?fit=max&auto=format&n=TTMXLUWSXYdGDb63&q=85&s=81b76afba5cc4bdb316b0ab7b71e8cb0" alt="Gerenciando permissões para seus dados" width="1456" height="844" data-path="images/edit-permissions.png" />
</Frame>

<Note>
  Se uma pessoa corresponder a qualquer uma das regras, ela tem acesso. Para adicionar uma linha adicional de Entity-User Field Comparison ou User Property Check, clique em **Add rule** na parte inferior do painel. Você não pode remover uma regra que é a única que cobre uma ação. Adicione outra regra para essa ação primeiro, depois desmarque a que quer remover.
</Note>

<Tip>
  A seção **Generated JSON (Preview)** na parte inferior da página mostra como suas regras se traduzem para o formato técnico que a Base44 usa nos bastidores. Você não precisa entendê-la para usar o editor de permissões, mas pode ser útil se um desenvolvedor pedir que você compartilhe sua configuração de permissão ou se quiser verificar exatamente quais regras estão em vigor.
</Tip>

### Tipos de regra de permissão

Normalmente você não precisa adicionar regras manualmente. A IA as configura quando cria suas tabelas de dados, e o painel **Permission recommendations** sugere correções quando algo parece errado. Esta seção está aqui se você quiser entender o que cada regra faz antes de aplicar uma recomendação, ou se precisar ajustar algo específico.

| Regra                            | O que faz                                                                                                 | Bom para                                                          |
| -------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| **All Users**                    | Qualquer um pode realizar essa ação, mesmo sem fazer login                                                | Dados públicos como um catálogo de produtos ou blog               |
| **Creator Only**                 | Uma pessoa só pode acessar registros que criou                                                            | Dados pessoais como pedidos, mensagens ou envios de formulário    |
| **Entity-User Field Comparison** | Uma pessoa só pode acessar um registro se um campo desse registro corresponder aos detalhes da conta dela | Atribuir registros a pessoas específicas, como tarefas ou tickets |
| **User Property Check**          | Apenas pessoas com uma propriedade específica de conta podem realizar essa ação                           | Acesso baseado em papel, como apenas admins                       |

<Note>
  Se você habilitar **All Users** para uma ação que já tem regras específicas, um diálogo de confirmação aparece antes que essas regras sejam limpas. Se você habilitar uma regra específica enquanto **All Users** está ativo para essa ação, **All Users** é removido automaticamente.
</Note>

### Como funciona Entity-User Field Comparison

Esta regra verifica se um campo do registro corresponde a uma propriedade da conta da pessoa logada. Se corresponder, o acesso é concedido.

Você define duas coisas:

* **Entity field**: O nome de um campo que já existe nessa tabela de dados. Para encontrar os nomes dos seus campos, vá para **Dashboard**, clique na tabela em **Data** e veja as colunas listadas lá. Digite o nome do campo exatamente como aparece. Por exemplo, `assigned_to` ou `owner_email`.
* **User field**: A propriedade da conta da pessoa logada para comparar, selecionada num drop-down. Por exemplo, o endereço de e-mail.

**Exemplo:** Você tem uma tabela Tasks com um campo `assigned_to` que armazena o e-mail de quem a tarefa pertence. Defina **Entity field** como `assigned_to` e **User field** como `email`. Agora cada pessoa só vê as tarefas atribuídas a ela.

Você pode adicionar várias linhas de Entity-User Field Comparison se precisar comparar em mais de um par de campos.

### Como funciona User Property Check

Esta regra verifica uma propriedade da conta da pessoa logada e concede acesso apenas se corresponder a um valor definido por você.

Você define duas coisas:

* **User property**: O campo da conta a verificar, como **User Role**, **User Email** ou **Full Name**.
* **Required value**: O valor que deve corresponder. Para **User Role**, você pode escolher **Admin** ou **User** num drop-down. Para outros campos, você digita o valor diretamente.

**Exemplo:** Você quer que apenas admins possam deletar registros. Defina **User property** como **User Role** e **Required value** como **Admin**.

Você pode adicionar várias linhas de User Property Check para propriedades ou valores diferentes.

***

## Aplicando recomendações de permissão

Se a IA detectar um risco potencial na sua configuração atual, um banner **Permission risks detected** aparece diretamente na página da tabela de dados. Ele mostra um resumo do risco e a correção recomendada. Você pode agir nele de duas formas:

* Clique em **Fix** para ir direto às recomendações e aplicá-las em uma etapa.
* Clique em **More details** para abrir o painel completo **Permission recommendations**, onde você pode revisar as mudanças antes de aplicá-las.

<Frame caption="Riscos de permissão detectados em uma tabela de dados">
  <img src="https://mintcdn.com/base44/TTMXLUWSXYdGDb63/images/permission-issues.png?fit=max&auto=format&n=TTMXLUWSXYdGDb63&q=85&s=54df87973f5004cf03325a40c5c53c43" alt="Riscos de permissão detectados em uma tabela de dados" width="1459" height="477" data-path="images/permission-issues.png" />
</Frame>

O painel **Permission recommendations** mostra duas seções. A seção **Risk** mostra suas regras atuais e explica por que podem expor dados a pessoas não pretendidas. A seção **Recommended rules** mostra a substituição sugerida junto com uma descrição em linguagem simples do que aplicam.

Clique em **Apply recommendations** para substituir suas regras atuais pelas recomendadas, ou clique em **Cancel** para fechar o painel e manter suas regras existentes. Você também pode editar as regras manualmente após aplicar as recomendações.

<Frame caption="Painel de recomendações de permissão">
  <img src="https://mintcdn.com/base44/TTMXLUWSXYdGDb63/images/permissions-recommendations.png?fit=max&auto=format&n=TTMXLUWSXYdGDb63&q=85&s=6ac2e2ddfca767f888ac2a082c4a4f77" alt="Painel de recomendações de permissão" width="894" height="677" data-path="images/permissions-recommendations.png" />
</Frame>

***

## Exemplos de permissão por tipo de app

Não sabe como configurar permissões para seu app? Use esses cenários comuns como ponto de partida. Você também pode pedir ao chat de IA para revisar sua configuração e sugerir as regras certas.

<AccordionGroup>
  <Accordion title="App pessoal ou de pequeno grupo (por exemplo, uma lista de tarefas compartilhada ou planejador familiar)">
    Um pequeno grupo de pessoas confiáveis usa o mesmo app, como uma lista de compras familiar ou uma ferramenta compartilhada de gerenciamento doméstico.

    * **App visibility:** Private. Convide as pessoas que precisam de acesso.
    * **Require login:** Sim.
    * **Permissions:** Para dados que todos compartilham igualmente, nenhuma restrição é necessária. Para dados que pertencem a cada pessoa individualmente, como notas pessoais ou lembretes, use **Creator Only** em Read, Update e Delete para que cada pessoa só possa acessar registros que criou.
  </Accordion>

  <Accordion title="Site público com formulário de contato ou consulta (por exemplo, uma landing page de negócio)">
    Qualquer um pode visitar o site, mas os envios feitos devem ser visíveis apenas para você ou sua equipe.

    * **App visibility:** Public.
    * **Require login:** Não.
    * **Permissions:** Para a tabela de envios de formulário, use **All Users** em Create para que qualquer um possa enviar. Use **User Property Check** em Read, Update e Delete, restrito ao seu papel de admin, para que apenas sua equipe possa ver e gerenciar as mensagens recebidas.
  </Accordion>

  <Accordion title="Dashboard interno de equipe (por exemplo, RH, vendas ou acompanhamento de projeto)">
    Uma equipe ou empresa usa o app internamente, e alguns dados devem ser visíveis apenas para gerentes ou papéis específicos.

    * **App visibility:** Workspace.
    * **Require login:** Sim.
    * **Permissions:** Use **User Property Check** para restringir tabelas sensíveis, como dados de salário ou avaliações de desempenho, a um papel de gerente. Para conteúdo geral como anúncios ou recursos compartilhados, use **All Users** em Read para que toda a equipe possa visualizar.
  </Accordion>

  <Accordion title="Portal de usuário (por exemplo, um rastreador de despesas ou dashboard pessoal)">
    Cada pessoa faz login e gerencia os próprios dados. Elas só devem ver os próprios registros, nunca os de outros.

    * **App visibility:** Public ou Workspace, dependendo se você quer cadastro aberto ou acesso apenas por convite.
    * **Require login:** Sim.
    * **Permissions:** Use **Creator Only** em Read, Update e Delete para cada tabela de dados pessoal. Isso garante que cada pessoa só possa acessar registros que criou.
  </Accordion>

  <Accordion title="Blog ou site de conteúdo com edição privada">
    Qualquer um pode navegar pelo conteúdo, mas apenas editores ou admins podem adicionar ou alterar qualquer coisa.

    * **App visibility:** Public.
    * **Require login:** Não, a menos que você queira restringir certo conteúdo.
    * **Permissions:** Use **All Users** em Read para que qualquer um possa visualizar conteúdo. Use **User Property Check** em Create, Update e Delete, restrito ao seu papel de editor ou admin, para que apenas sua equipe possa gerenciar conteúdo.
  </Accordion>

  <Accordion title="App multi-tenant (por exemplo, uma plataforma SaaS ou sistema escolar)">
    Diferentes empresas, escolas ou departamentos usam o app, mas seus dados devem permanecer completamente separados uns dos outros.

    * **App visibility:** Public ou Workspace, dependendo da sua configuração.
    * **Require login:** Sim.
    * **Permissions:** Use **Entity-User Field Comparison** para combinar um campo em cada registro com uma propriedade da conta da pessoa logada. Por exemplo, se cada registro tem um campo `company_id` e cada conta de usuário tem uma propriedade `company_id` correspondente, defina Entity field como `company_id` e User field como `company_id`. Cada pessoa só vê registros que pertencem à sua empresa. Para acesso de admin dentro de um grupo, combine isso com um **User Property Check** no papel de admin.
  </Accordion>
</AccordionGroup>

***

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Preciso configurar permissões eu mesmo?">
    Não. A Base44 configura permissões automaticamente quando cria tabelas de dados. Você pode pedir ao chat de IA para atualizá-las a qualquer momento em linguagem simples, ou ajustá-las manualmente na página **Permissions** de cada tabela. Antes de publicar, vale a pena executar uma varredura de segurança para confirmar que tudo parece certo.
  </Accordion>

  <Accordion title="Por que minhas permissões não estão restringindo o acesso corretamente?">
    Abra a tabela afetada no seu dashboard e verifique a página **Permissions**. Se houver um banner **Permission risks detected**, clique em **Fix** para aplicar as regras recomendadas, ou **More details** para revisá-las primeiro. Você também pode executar uma varredura de segurança na aba **Security** para uma visão geral completa de problemas no seu app, ou descrever o problema para o chat de IA e pedir que ele corrija para você. Depois de fazer mudanças, teste seu app no modo **Preview** fazendo login como diferentes papéis para confirmar que o acesso está funcionando como esperado.
  </Accordion>

  <Accordion title="Mudar permissões afeta pessoas que já estão usando meu app?">
    Sim, as mudanças entram em vigor imediatamente. Antes de fazer mudanças, use o modo **Preview** para testar como seu app se comporta com as novas regras. Faça login como diferentes papéis para confirmar que o acesso está funcionando do jeito que você espera.
  </Accordion>

  <Accordion title="Posso criar mais papéis do que apenas user e admin?">
    Sim. Adicione um campo personalizado (como `department` ou `access_level`) à sua tabela User e defina valores como manager ou viewer. Depois use regras **User Property Check** nesse campo para dar a cada papel o nível certo de acesso. Você pode pedir ao chat de IA para configurar isso para você.
  </Accordion>

  <Accordion title="Posso restringir acesso a campos específicos em um registro?">
    Não. As permissões se aplicam a tabelas de dados inteiras, não a campos individuais. Se você precisa limitar quais dados são retornados de uma tabela, pode fazer isso por funções de backend, que permitem filtrar ou transformar dados antes que cheguem ao app. Você pode pedir ao chat de IA para ajudar a configurar isso.
  </Accordion>

  <Accordion title="O editor de permissões está mostrando JSON em vez da matriz de regras. O que aconteceu?">
    Se suas permissões foram configuradas com regras complexas demais para o editor visual representar, como condições usando operadores avançados, o editor recua para uma visualização apenas em JSON. Você ainda pode editar o JSON diretamente, ou começar do zero marcando uma caixa na matriz, o que pede confirmação antes de substituir a configuração existente.
  </Accordion>
</AccordionGroup>

<Note>Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a [versão em inglês](/). </Note>
