¿Qué es Row Level Security (RLS) y cómo protege mis datos?

Row Level Security (RLS) · Seguridad y legal

La respuesta corta

Row Level Security, o seguridad a nivel de fila, son reglas dentro de la base de datos que deciden, registro por registro, quién puede leer o modificar qué. La base misma revisa quién hace la petición, aunque la aplicación se equivoque al filtrar.

PedidosAna · $40Luis · $75Ana · $20Luis · $60AnaAna · $40Ana · $20LuisLuis · $75Luis · $60Cada quien solo ve sus filasLa base misma decide quién ve qué
La seguridad por fila es un candado en cada renglón: la base decide quién lee cuál, aunque la app falle.
Explicado con calma

¿Qué es Row Level Security y cómo protege los datos de mi aplicación?

Row Level Security, o seguridad a nivel de fila, es una función de bases de datos como PostgreSQL que aplica permisos a cada registro. La base misma revisa quién hace la petición y solo le deja ver o cambiar lo que le corresponde, aunque la aplicación se equivoque al filtrar.

Es muy útil en servicios como Supabase, donde la aplicación habla con la base usando una llave pública. Esa llave no es secreta por diseño; lo que protege los datos son las reglas.

Por qué le importa a tu negocio

Una aplicación con muchos usuarios o con datos sensibles no puede depender de que cada pantalla recuerde filtrar la información. Con reglas en la base, un error en el código de la interfaz no basta para exponer los datos de otro cliente.

Ejemplos

Lo mismo, en pequeño y en grande

En pequeño

Una app de una academia pequeña

Una academia guarda los datos de sus alumnos en la nube. El registro público está apagado y solo la cuenta de la escuela puede leer o escribir. Aunque alguien conozca la dirección de la base, las reglas no lo dejan ver nada.

En grande

Una aplicación con muchos clientes

Una aplicación guarda los datos de miles de personas en la misma tabla. Con reglas por fila, cada usuario solo ve sus propios registros. Un error en la pantalla no basta para mostrarle a alguien los datos de otro.

Dónde lo vas a ver

Cómo lo usamos en Damorus

En la seguridad la dan Row Level Security y una cuenta de sincronización: el registro público está apagado y solo una sesión autenticada de la escuela puede leer o escribir. Encima, el permiso de borrar está revocado en la base, así que la app solo marca registros como eliminados; el borrado real necesita una llave maestra que guarda el dueño. usa PostgreSQL con Row Level Security en sus tablas de operación.

Pregunta rápida

Pon a prueba lo que leíste

Elige A, B o C. Si fallas, lees el porqué y pruebas otra vez.

Una pantalla de tu app se olvida de filtrar y le pide a la base todos los registros. Con reglas a nivel de fila, ¿qué pasa?

A jugar

Aprende jugando

Reto especial

Ábrelos todos

Siguiente en la ruta · paso 9 de 13¿Qué son las cookies y cuándo necesito pedir consentimiento en mi página?

¿Conoces a alguien a quien le sirva esto?