# Supabase RLS: proteja os dados do seu app e as chaves de API

> **Resposta Direta:** A Aula 9 de 15 ("Supabase RLS: proteja os dados do seu app e as chaves de API"), parte do módulo "Recursos avançados" do curso gratuito "Supabase sem mistério: banco, auth e RLS" na Escola de Aplicativos (ministrado por Mauro Mequelussi), ensina na prática: exploramos o funcionamento do Row Level Security (RLS) no Supabase usando a analogia do porteiro e as chaves de API. Veja como restringir o acesso no Funil para vendedores e donos, além de evitar armadilhas comuns como views desprotegidas e funções mal configuradas. Aprenda também a usar o Security Advisor para auditar a segurança do seu banco.

## Ficha Técnica da Aula

- **Curso:** [Supabase sem mistério: banco, auth e RLS](https://www.escoladeaplicativos.com.br/cursos/supabase-sem-misterio)
- **Escola:** Escola de Aplicativos (https://www.escoladeaplicativos.com.br)
- **Instrutor:** Mauro Mequelussi
- **Módulo 3 de 4:** Recursos avançados
- **Posição na trilha:** Aula 9 de 15
- **Duração da videoaula:** 6 min
- **Nível:** Iniciante
- **Idioma:** Português (PT-BR)
- **Custo:** 100% Gratuito (R$ 0)
- **Certificado:** Certificado gratuito verificável incluso ao concluir o curso
- **Acesso ao vídeo:** Resumo técnico aberto; videoaula em HD liberada mediante cadastro gratuito
- **URL canônica:** https://www.escoladeaplicativos.com.br/cursos/supabase-sem-misterio/supabase-rls-proteja-os-dados-do-seu-app-e-as-chaves-de-api

## O que você vai aprender

- A diferença essencial entre a chave de API publicável e a chave secreta.
- O funcionamento do Row Level Security e como estruturar políticas com filtros precisos.
- Por que TO authenticated sozinho não é seguro e a diferença entre autenticação e autorização.
- O papel das cláusulas USING e WITH CHECK em operações de atualização.
- Como views desprotegidas e funções SECURITY DEFINER podem ignorar o RLS acidentalmente.
- Como identificar e corrigir brechas com o Security Advisor do Supabase.

## Pontos-chave da Aula

- A chave pública no frontend abre apenas a porta do saguão; o RLS decide quem acessa cada linha.
- Uma política segura define sempre quem pode acessar e qual linha pertence àquela pessoa.
- Nunca confie no user_metadata para definir papéis de permissão; utilize app_metadata ou schemas privados.
- Para evitar desvios no UPDATE, combine sempre USING com WITH CHECK e garanta permissão de leitura.
- Ative security_invoker = true em views para que respeitem as políticas de RLS do usuário conectado.

## Capítulos e Tópicos da Videoaula

- **[00:00] A chave pública do app e o risco de vazamento** — Entenda por que chaves no frontend são públicas e o que realmente protege os dados do seu banco contra acessos indevidos.
- **[00:23] O que é RLS e a analogia do porteiro** — Descubra como o Row Level Security atua como um porteiro decidindo quem acessa cada linha do banco de dados.
- **[00:50] Como funcionam as políticas de acesso** — Veja onde criar políticas no Supabase e como elas adicionam filtros automáticos em cada consulta executada.
- **[01:14] Regra para vendedores: autenticação e autorização** — Evite a armadilha de permitir acesso apenas por login sem checar se a linha realmente pertence ao usuário.
- **[01:48] Acesso de administrador e metadados seguros** — Saiba como conceder acesso total a administradores utilizando schemas privados e app_metadata em vez de user_metadata.
- **[02:21] Políticas de edição com USING e WITH CHECK** — Compreenda a importância de validar os dados antes e depois da edição para evitar roubo de linhas entre usuários.
- **[02:51] Furos silenciosos: views, SECURITY DEFINER e chaves** — Conheça as três brechas comuns que ignoram o RLS por acidente e aprenda como corrigi-las.
- **[03:44] Auditoria prática com o Security Advisor** — Use o painel do Supabase para encontrar tabelas expostas e testar regras de segurança antes de ir para produção.
- **[04:19] Por que você nunca deve desligar o RLS** — Aprenda a diagnosticar erros de permissão comuns como o erro 42501 sem abrir mão da segurança do projeto.
- **[04:40] Comparativo: RLS contra regras no backend e Firebase** — Entenda as vantagens de aplicar regras de segurança direto no PostgreSQL em vez de confiar apenas em código de aplicação.
- **[04:57] Impacto em performance e boas práticas de índices** — Dicas essenciais de indexação e consultas para garantir que o RLS não prejudique a velocidade do seu banco.
- **[05:13] Resumo da aula e introdução a vetores e IA** — Recapitulação dos pontos de segurança do app e uma introdução ao que será construído na próxima aula com IA.

## Destaques Práticos

- **[01:19] A armadilha clássica do TO authenticated**: Cuidado: permitir acesso a quem está logado não significa proteger os dados de outros usuários.
- **[02:51] Como views e SECURITY DEFINER furam o RLS**: Você sabia que uma consulta salva ou uma função podem desativar a segurança do seu banco sem você perceber?
- **[03:45] Auditoria em segundos com o Security Advisor**: Descubra como o painel do Supabase alerta sobre brechas críticas no seu banco com poucos cliques.

## Conceitos e Tecnologias Abordados

- **Tópicos:** Row Level Security (RLS), Políticas de Acesso (Policies), Chaves de API (Publicável vs Secreta), Security Advisor, Auditoria de Permissões, Segurança no Postgres
- **Ferramentas e Entidades:** Supabase, PostgreSQL, Firebase

## Documentação e Referências Oficiais

- [Guia oficial de Row Level Security (RLS) no Supabase](https://supabase.com/docs/guides/database/postgres/row-level-security)
- [Entenda as chaves de API: publicável vs secreta](https://supabase.com/docs/guides/api/api-keys)

## Perguntas Frequentes (FAQ)

### O que é ensinado na Aula 9 (Supabase RLS: proteja os dados do seu app e as chaves de API) do curso Supabase sem mistério: banco, auth e RLS?

Nesta aula do módulo "Recursos avançados" na Escola de Aplicativos, você aprende de forma prática: A diferença essencial entre a chave de API publicável e a chave secreta.; O funcionamento do Row Level Security e como estruturar políticas com filtros precisos.; Por que TO authenticated sozinho não é seguro e a diferença entre autenticação e autorização.; O papel das cláusulas USING e WITH CHECK em operações de atualização..

### Como assistir ao vídeo completo da aula "Supabase RLS: proteja os dados do seu app e as chaves de API" gratuitamente?

O resumo técnico estruturado desta aula é público e gratuito. Para assistir à videoaula completa em HD, basta entrar ou criar sua conta 100% gratuita na Escola de Aplicativos — o cadastro leva segundos e libera todas as 15 aulas do curso "Supabase sem mistério: banco, auth e RLS", controle de progresso, Tutor IA e emissão de certificado gratuito.

### Quais tecnologias e conceitos são abordados em "Supabase RLS: proteja os dados do seu app e as chaves de API"?

A aula cobre diretamente os seguintes tópicos técnicos aplicados em produção: Row Level Security (RLS), Políticas de Acesso (Policies), Chaves de API (Publicável vs Secreta), Security Advisor, Auditoria de Permissões, Segurança no Postgres.

### O curso "Supabase sem mistério: banco, auth e RLS" oferece certificado gratuito?

Sim. Ao assistir às 15 aulas do curso gratuito "Supabase sem mistério: banco, auth e RLS" na Área de Membros da Escola de Aplicativos, você emite gratuitamente um certificado digital em português com código de verificação pública.

## Como assistir à videoaula completa gratuitamente

Crie sua conta gratuita em segundos em https://www.escoladeaplicativos.com.br/login?redirect=%2Fm%2Fcursos%2Fsupabase-sem-misterio%2Faula%2Fsupabase-rls-proteja-os-dados-do-seu-app-e-as-chaves-de-api para assistir ao vídeo completo desta aula em HD na Área de Membros da Escola de Aplicativos, com progresso salvo, Tutor IA e certificado gratuito verificável.

## Navegação do Curso

- **Aula anterior:** [Aula 8: Supabase Data API: por que a tabela sumiu e como liberar](https://www.escoladeaplicativos.com.br/cursos/supabase-sem-misterio/supabase-data-api-por-que-a-tabela-sumiu-e-como-liberar)
- **Próxima aula:** [Aula 10: Busca semântica e embeddings no Supabase com pgvector](https://www.escoladeaplicativos.com.br/cursos/supabase-sem-misterio/busca-semantica-e-embeddings-no-supabase-com-pgvector)
