Row-Level Security en Supabase: proteger tablas
Clase 9 de 17 • Supabase Avanzado
Contenido del curso
Autenticación
CRUD de la aplicación
Seguridad avanzada
Dashboard con Supabase Realtime
Emails y Resend para Suplatzigram
MCP y Edge Functions
Proteger datos en Supabase con Row-Level Security (RLS) es clave para que tu app funcione como una red social segura: cada usuario solo modifica lo que le pertenece. Aquí verás qué activar, cómo configurarlo desde el dashboard y cómo apoyarte en el asistente con AI de Supabase para crear políticas precisas, sin errores.
¿Qué es RLS en Supabase y por qué activarlo ahora?
El RLS determina quién puede leer, insertar, actualizar o borrar filas específicas según el usuario autenticado. Sin RLS, cualquier cliente con la clave pública podría modificar datos sensibles. Al activarlo, los usuarios anónimos dejan de tener acceso por defecto, y solo los usuarios logueados pueden consumir o escribir según las políticas que definas.
Conceptos esenciales que se aplican: - RLS activo: bloquea todo lo público por defecto. - Políticas por operación: select, insert, update, delete, o “todas”. - Lectura pública: permitir select sin autenticación cuando haga sentido. - Usuarios autenticados: restringir insert, update y delete al usuario logueado. - Propiedad del dato: cada quien modifica solo lo propio. - Super admin opcional: reservar update/delete de ciertas tablas para roles elevados.
¿Cómo se habilita y se gestionan políticas desde el dashboard de Supabase?
En el dashboard, el editor de tablas muestra un aviso “unrestricted” cuando el RLS está deshabilitado. Al activarlo con el botón, Supabase bloquea el acceso público y solo los usuarios logueados podrán consumir según las políticas. Luego, en “políticas”, verás un panel con filtros por operación y sentencias en SQL.
- El panel puede ser abrumador: es normal.
- Activa RLS y define políticas tabla por tabla para evitar errores.
- Revisa cada política antes de guardarla: operación, público/autenticado, expresión aplicada.
Ejemplo mínimo en SQL para activar RLS (ilustrativo):
-- activar RLS en la tabla
ALTER TABLE comments ENABLE ROW LEVEL SECURITY;
¿Qué hace el asistente con AI y cómo ayuda?
Supabase incluye un chat con AI en la esquina superior derecha. En versión gratuita ofrece GPT-5 mini y en Pro ofrece GPT-5. Puedes pegar tus reglas y recibir:
- Resumen de políticas RLS por tabla acorde a tus necesidades.
- Bloques de SQL listos para ejecutar (uno por tabla o script único).
- Aclaraciones sobre supuestos: esquema public, columnas como
user_idde tipo UUID, etc.
Sugerencias prácticas que emergen del uso real: - Si el asistente asume nombres/tipos distintos a tu esquema, ajusta antes de ejecutar. - Si no puede listar tablas, genera el SQL con supuestos y edita manualmente. - Puedes combinar su guía con la interfaz de políticas para aplicar reglas de forma segura.
¿Qué políticas aplicar en profiles, posts_new, likes y comments?
La configuración objetivo es coherente con una app tipo red social: lectura pública donde convenga y escritura reservada al usuario autenticado.
- profiles.
- Cada usuario puede select, insert y update solo sobre su propio perfil.
-
Nadie más debe editar el perfil ajeno.
-
posts_new.
- Lectura pública: select sin autenticación para listar publicaciones.
- Publicar requiere estar autenticado: insert solo para usuarios logueados.
-
Update y delete no permitidos para usuarios normales; puedes reservarlos a un rol superior si lo necesitas.
-
likes.
- Insert y delete solo por el usuario autenticado y sobre su propio like.
-
Evitar duplicados: si ya existe un like, primero debe quitarse antes de volver a dar like.
-
comments.
- Lectura pública: select disponible para todos.
- Insert solo para usuarios autenticados.
- Update y delete solo por el autor del comentario.
Aplicación práctica desde el editor de tablas para comments: - Política de lectura pública: permitir select para anónimos. - Política de creación para autenticados: permitir insert para usuarios logueados. - Verificar estado: el listado mostrará cuántas políticas tiene cada tabla.
Con este flujo, activas RLS en tablas clave y estableces reglas claras por operación. Tu “Suplaxigram” queda más segura, estable y lista para producción. ¿Qué reglas te funcionaron mejor y qué te gustaría automatizar con el asistente con AI?