Pular para o conteúdo

Permissões no banco

O banco usa as permissões e papéis em dois níveis. Elas valem para quem chama com a sessão do usuário (o app web); o servidor, com chave de API, acessa conforme os escopos da chave.

Ficam nas Configurações da tabela (console) ou no permissions do createTable/updateTable. Valem para todas as linhas.

Exemplo Efeito
Permission.read(Role.any()) catálogo público: qualquer pessoa lê
Permission.create(Role.users()) qualquer usuário logado cria linhas
Permission.read(Role.team('equipe')), Permission.write(Role.team('equipe')) só o time lê e escreve

Com a segurança por linha ligada (rowSecurity: true), cada linha pode ter permissões próprias, somadas às da tabela. Quem tem leitura na tabela lê todas as linhas; quem não tem lê só as linhas que lhe dão leitura.

Padrão comum, “cada usuário vê só o que é dele”:

  1. Tabela com Permission.create(Role.users()) e segurança por linha ligada.
  2. Cada linha criada pelo usuário recebe read, update e delete para Role.user(<id dele>). É o que acontece quando o createRow vem do navegador sem permissions.

O exemplo completo está em Permissões e papéis.