Restrinja as tarefas com RLS
Prepare o ambiente
Configure a leitura e a inserção de tarefas pela identidade autenticada e confira o isolamento entre dois cadastros.
- Conclua as etapas anteriores da trilha em um projeto de estudo.
O campo user_id relaciona a tarefa a um cadastro. A política compara esse valor com auth.uid(), que representa a identidade autenticada na chamada. A tabela do exercício terá somente leitura e inserção pelo frontend.
Conceda as ações previstas
Execute o SQL no projeto de estudo que contém a tabela tarefas. O trecho retira permissões anteriores dos papéis usados pela API e concede as duas ações necessárias ao exercício.
begin;revoke all on public.tarefas from anon, authenticated;grant select, insert on public.tarefas to authenticated;create policy tarefas_leitura on public.tarefas for select to authenticated using ((select auth.uid()) = user_id);create policy tarefas_insercao on public.tarefas for insert to authenticated with check ((select auth.uid()) = user_id);commit;A condição using seleciona as linhas visíveis. A condição with check confere o registro que será inserido. O exemplo não concede atualização nem exclusão, por isso essas ações exigiriam permissões e políticas próprias.
Compare duas sessões
Entre com o primeiro cadastro e crie uma tarefa pela aplicação. Depois encerre a sessão e entre com o segundo cadastro. A tarefa do primeiro não deve aparecer. Insira uma tarefa do segundo cadastro e repita a comparação.
Faça também uma tentativa de inserção com o identificador do outro cadastro. A API deve recusar a gravação. Esse teste verifica a permissão mesmo quando o frontend envia um valor adulterado.
Use o cliente da aplicação
Execute a conferência com a chave publishable e as sessões de teste. O SQL Editor usa acesso administrativo e não reproduz esse caminho. Uma consulta administrativa que encontra todas as linhas não invalida o teste feito com a sessão.
A próxima etapa conecta o cliente JavaScript e fornece o código de inserção e leitura para concluir a comparação.
Confira o resultado
Cada sessão consulta apenas suas tarefas. A inserção com o identificador de outro cadastro deve ser recusada.
Fontes consultadas
Procedimento conferido na documentação oficial. A execução em uma instância Supabase não foi realizada nesta revisão.
