- Row Level Security (RLS): Controla a qué registros pueden acceder los usuarios.
- Field Level Security (FLS): Controla a qué campos dentro de los registros pueden acceder los usuarios.
El acceso con rol de servicio omite estas reglas:
base44.asServiceRole omite por completo RLS y FLS, sin importar cómo esté configurada la entidad, así que no necesitas una regla de administrador equivalente para que lea o escriba un registro. Solo está disponible en funciones de backend alojadas en Base44, y tu función es responsable de cualquier comprobación de acceso que necesite.Tipos de permiso
Cada nivel de seguridad tiene distintos permisos que puedes establecer. Para cada permiso, defines a quién se le permite realizar la acción.Row Level Security (RLS)
create- Añade nuevos registrosread- Visualiza registrosupdate- Modifica registrosdelete- Elimina registros
Field Level Security (FLS)
read- Visualiza el campowrite- Crea o modifica el campo
Valores de permiso
Cada permiso acepta uno de los siguientes valores:true- Permite a todos los usuariosfalse- Bloquea a todos los usuarios{<condition>}- Permite a los usuarios que cumplan la condición
En qué se diferencian las lecturas y escrituras denegadas
Las lecturas denegadas se comportan como si los datos no existieran, así que no revelan lo que hay. Las escrituras denegadas lanzan un error, así que un cambio bloqueado nunca falla en silencio.Sintaxis de la condición
Al usar{<condition>} como valor de permiso, puedes definir reglas que comprueben los atributos o roles del usuario.
Una condición que hace referencia a
{{user.*}} o usa user_condition requiere un llamante autenticado. Un llamante anónimo no tiene usuario con el que comparar, así que la regla lo bloquea directamente en lugar de evaluarse como falsa.created_by- Email del usuario que creó el registrocreated_by_id- ID del usuario que creó el registroentity_name- Nombre del tipo de entidadapp_id- App IDenvironment-prododevis_sample- Si son datos de muestrais_deleted- Flag de eliminación lógicadeleted_date- Cuándo se eliminódata.*- Cualquier campo de las propiedades de tu esquema de entidad
{{user.email}}- Email del usuario{{user.id}}- ID del usuario{{user.role}}- Rol del usuario{{user.data.*}}- Campos de usuario adicionales que definas
user_condition.
Campos de usuario que puedes comprobar:
email- Email del usuarioid- ID del usuariorole- Rol del usuariodata.*- Campos de usuario personalizados
$or, $and, $nor, $in, $nin, $all
Ejemplo:
Ejemplo de Row Level Security (RLS)
Añaderls a nivel de entidad:
Ejemplo de Field Level Security (FLS)
Añaderls a las propiedades de campos individuales:
Ejemplo completo con seguridad
Aquí tienes un esquema de entidad con RLS y FLS:Desplegar reglas de seguridad
Las reglas de seguridad forman parte de tu esquema de entidad. Después de añadir o actualizar las reglas de seguridad, despliega usandoentities push. Las reglas de seguridad también se despliegan automáticamente cuando ejecutas el comando deploy para desplegar todo tu proyecto.
Ver también
- Resumen de entidades: Aprende sobre la configuración de esquemas de base de datos
- Esquemas de entidad: Define la estructura de tus entidades
- Esquema de usuario: Entidad integrada especial para la autenticación de usuarios
- Acceso a datos con rol de servicio: Lee y escribe datos sin que se apliquen las reglas de acceso
- Estructura del proyecto: Cómo encajan los esquemas de entidad en tu proyecto
Esta página se tradujo con IA. Para información más precisa y actualizada, consulta la versión en inglés.