> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Gestionar permisos de datos

Base44 configura automáticamente los permisos de datos mientras construyes tu app. Puedes ajustarlos en cualquier momento usando el chat de IA, o configurarlos manualmente si necesitas más control. Si los permisos no se configuran correctamente, las personas equivocadas podrían ver o cambiar datos en tu app.

<Tip>
  Para definir quién puede abrir tu app y si necesitan iniciar sesión, consulta [Gestionar acceso y roles de la app](/Setting-up-your-app/Managing-access#setting-your-app-visibility).
</Tip>

***

## Usar el chat de IA para definir permisos

No necesitas configurar permisos manualmente. Dile al chat de IA cómo debe funcionar tu app en lenguaje natural, y configura las reglas correctas por ti. Esto funciona cuando estás construyendo tu app por primera vez y en cualquier momento posterior cuando tus necesidades cambien. Si necesita actualizar reglas existentes, te pide aprobación primero.

**Aquí algunos ejemplos de prompts que puedes usar:**

```text theme={null}
Only the person who submitted an order should be able to see it.
```

```text theme={null}
Admins should have full access to all client details. Regular users should only see their own.
```

```text theme={null}
Anyone can browse the product catalog, but only managers can add or update listings.
```

***

## Personalizar permisos manualmente

Si quieres revisar o afinar los permisos en una tabla de datos específica, puedes hacerlo desde la página **Permissions** de la tabla en tu dashboard. La página se abre en vista de solo lectura mostrando tus reglas actuales. Haz clic en **Edit** para hacer cambios.

<Tip>
  ¿No estás seguro de qué reglas configurar? Describe lo que necesitas al chat de IA en lenguaje natural y configura los permisos por ti. La configuración manual está ahí para cuando necesitas control más preciso.
</Tip>

**Para personalizar los permisos de una tabla de datos:**

1. Haz clic en **Dashboard** en el editor de tu app.
2. Bajo **Data**, haz clic en la tabla que quieres gestionar.
3. Haz clic en **Permissions** arriba a la derecha de la página. Si hay problemas de permisos, ves un ícono de advertencia en el botón.
4. Haz clic en **Edit** para abrir el panel **Configure permissions**.
5. Marca las casillas para las acciones que quieres que cada regla cubra: **Create** (añadir registros), **Read** (ver registros), **Update** (editar registros) y **Delete** (quitar registros).
6. Si marcas una casilla para **Entity-User Field Comparison**, ingresa el campo de esta tabla a comparar en **Entity field**, luego elige la propiedad de usuario correspondiente del desplegable **User field**.
7. Si marcas una casilla para **User Property Check**, elige la propiedad del usuario del desplegable **User property** y define el valor requerido.
8. Haz clic en **Save**.

<Frame caption="Gestionando permisos para tus datos">
  <img src="https://mintcdn.com/base44/TTMXLUWSXYdGDb63/images/edit-permissions.png?fit=max&auto=format&n=TTMXLUWSXYdGDb63&q=85&s=81b76afba5cc4bdb316b0ab7b71e8cb0" alt="Managing permissions for your data" width="1456" height="844" data-path="images/edit-permissions.png" />
</Frame>

<Note>
  Si una persona cumple cualquier regla, obtiene acceso. Para añadir una fila adicional de Entity-User Field Comparison o User Property Check, haz clic en **Add rule** abajo del panel. No puedes quitar una regla que es la única que cubre una acción. Añade primero otra regla para esa acción, luego deselecciona la que quieres quitar.
</Note>

<Tip>
  La sección **Generated JSON (Preview)** abajo de la página muestra cómo tus reglas se traducen al formato técnico que Base44 usa detrás de escena. No necesitas entenderlo para usar el editor de permisos, pero puede ser útil si un desarrollador te pide compartir tu configuración de permisos o si quieres verificar exactamente qué reglas están en su lugar.
</Tip>

### Tipos de reglas de permisos

Normalmente no necesitas añadir reglas manualmente. La IA las configura cuando crea tus tablas de datos, y el panel **Permission recommendations** sugiere correcciones cuando algo se ve mal. Esta sección está aquí si quieres entender lo que hace cada regla antes de aplicar una recomendación, o si necesitas afinar algo específico.

| Regla                            | Qué hace                                                                                                        | Bueno para                                                      |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| **All Users**                    | Cualquiera puede realizar esta acción, incluso sin iniciar sesión                                               | Datos públicos como un catálogo de productos o blog             |
| **Creator Only**                 | Una persona solo puede acceder a registros que creó                                                             | Datos personales como pedidos, mensajes o envíos de formularios |
| **Entity-User Field Comparison** | Una persona solo puede acceder a un registro si un campo en ese registro coincide con los detalles de su cuenta | Asignar registros a personas específicas, como tareas o tickets |
| **User Property Check**          | Solo personas con una propiedad de cuenta específica pueden realizar esta acción                                | Acceso basado en rol, como solo admins                          |

<Note>
  Si habilitas **All Users** para una acción que ya tiene reglas específicas, aparece un diálogo de confirmación antes de que esas reglas se limpien. Si habilitas una regla específica mientras **All Users** está activo para esa acción, **All Users** se quita automáticamente.
</Note>

### Cómo funciona Entity-User Field Comparison

Esta regla revisa si un campo en el registro coincide con una propiedad de la cuenta de la persona conectada. Si coinciden, se otorga el acceso.

Configuras dos cosas:

* **Entity field**: El nombre de un campo que ya existe en esta tabla de datos. Para encontrar tus nombres de campo, ve a **Dashboard**, haz clic en la tabla bajo **Data** y mira las columnas listadas. Escribe el nombre del campo exactamente como aparece. Por ejemplo, `assigned_to` u `owner_email`.
* **User field**: La propiedad de la cuenta de la persona conectada para comparar, seleccionada de un desplegable. Por ejemplo, su dirección de email.

**Ejemplo:** Tienes una tabla Tasks con un campo `assigned_to` que guarda el email de a quien le pertenece la tarea. Define **Entity field** como `assigned_to` y **User field** como `email`. Ahora cada persona solo ve las tareas asignadas a ella.

Puedes añadir varias filas de Entity-User Field Comparison si necesitas coincidir en más de un par de campos.

### Cómo funciona User Property Check

Esta regla revisa una propiedad en la cuenta de la persona conectada y otorga acceso solo si coincide con un valor que defines.

Configuras dos cosas:

* **User property**: El campo de la cuenta a revisar, como **User Role**, **User Email** o **Full Name**.
* **Required value**: El valor que debe coincidir. Para **User Role**, puedes elegir **Admin** o **User** de un desplegable. Para otros campos, escribes el valor directamente.

**Ejemplo:** Quieres que solo admins puedan eliminar registros. Define **User property** como **User Role** y **Required value** como **Admin**.

Puedes añadir varias filas de User Property Check para distintas propiedades o valores.

***

## Aplicar recomendaciones de permisos

Si la IA detecta un riesgo potencial en tu configuración actual, aparece un banner **Permission risks detected** directamente en la página de la tabla de datos. Muestra un resumen del riesgo y la corrección recomendada. Puedes actuar de dos formas:

* Haz clic en **Fix** para ir directamente a las recomendaciones y aplicarlas en un paso.
* Haz clic en **More details** para abrir el panel completo **Permission recommendations**, donde puedes revisar los cambios antes de aplicarlos.

<Frame caption="Riesgos de permisos detectados en una tabla de datos">
  <img src="https://mintcdn.com/base44/TTMXLUWSXYdGDb63/images/permission-issues.png?fit=max&auto=format&n=TTMXLUWSXYdGDb63&q=85&s=54df87973f5004cf03325a40c5c53c43" alt="Permission risks detected on a data table" width="1459" height="477" data-path="images/permission-issues.png" />
</Frame>

El panel **Permission recommendations** muestra dos secciones. La sección **Risk** muestra tus reglas actuales y explica por qué pueden exponer datos a personas no deseadas. La sección **Recommended rules** muestra el reemplazo sugerido junto con una descripción en lenguaje natural de lo que aplican.

Haz clic en **Apply recommendations** para reemplazar tus reglas actuales con las recomendadas, o haz clic en **Cancel** para cerrar el panel y mantener tus reglas existentes. También puedes editar las reglas manualmente después de aplicar las recomendaciones.

<Frame caption="Panel de recomendaciones de permisos">
  <img src="https://mintcdn.com/base44/TTMXLUWSXYdGDb63/images/permissions-recommendations.png?fit=max&auto=format&n=TTMXLUWSXYdGDb63&q=85&s=6ac2e2ddfca767f888ac2a082c4a4f77" alt="Permission recommendations panel" width="894" height="677" data-path="images/permissions-recommendations.png" />
</Frame>

***

## Ejemplos de permisos por tipo de app

¿No estás seguro de cómo configurar permisos para tu app? Usa estos escenarios comunes como punto de partida. También puedes pedirle al chat de IA revisar tu configuración y sugerir las reglas correctas.

<AccordionGroup>
  <Accordion title="App personal o de grupo pequeño (por ejemplo, una lista de tareas compartida o un planificador familiar)">
    Un grupo pequeño de personas de confianza usan la misma app, como una lista de compras familiar o una herramienta compartida de gestión del hogar.

    * **Visibilidad de la app:** Private. Invita a las personas que necesitan acceso.
    * **Requerir login:** Sí.
    * **Permisos:** Para datos que todos comparten por igual, no se necesitan restricciones. Para datos que pertenecen a cada persona individualmente, como notas personales o recordatorios, usa **Creator Only** en Read, Update y Delete para que cada persona solo acceda a registros que creó.
  </Accordion>

  <Accordion title="Sitio público con un formulario de contacto o consulta (por ejemplo, una página de aterrizaje de negocio)">
    Cualquiera puede visitar el sitio, pero los envíos que mandan solo deben ser visibles para ti o tu equipo.

    * **Visibilidad de la app:** Public.
    * **Requerir login:** No.
    * **Permisos:** Para la tabla de envíos del formulario, usa **All Users** en Create para que cualquiera pueda enviar. Usa **User Property Check** en Read, Update y Delete, restringido a tu rol admin, para que solo tu equipo vea y gestione los mensajes entrantes.
  </Accordion>

  <Accordion title="Dashboard de equipo interno (por ejemplo, HR, ventas o seguimiento de proyectos)">
    Un equipo o empresa usa la app internamente, y algunos datos solo deben ser visibles para managers o roles específicos.

    * **Visibilidad de la app:** Workspace.
    * **Requerir login:** Sí.
    * **Permisos:** Usa **User Property Check** para restringir tablas sensibles, como datos de salario o reseñas de desempeño, a un rol manager. Para contenido general como anuncios o recursos compartidos, usa **All Users** en Read para que todo el equipo pueda verlo.
  </Accordion>

  <Accordion title="Portal de usuarios (por ejemplo, un rastreador de gastos o dashboard personal)">
    Cada persona inicia sesión y gestiona sus propios datos. Solo deben ver sus propios registros, nunca los de nadie más.

    * **Visibilidad de la app:** Public o Workspace, dependiendo de si quieres registro abierto o acceso solo por invitación.
    * **Requerir login:** Sí.
    * **Permisos:** Usa **Creator Only** en Read, Update y Delete para cada tabla de datos personales. Esto asegura que cada persona solo pueda acceder a registros que creó.
  </Accordion>

  <Accordion title="Blog o sitio de contenido con edición privada">
    Cualquiera puede explorar el contenido, pero solo editores o admins pueden añadir o cambiar algo.

    * **Visibilidad de la app:** Public.
    * **Requerir login:** No, a menos que quieras restringir cierto contenido.
    * **Permisos:** Usa **All Users** en Read para que cualquiera vea el contenido. Usa **User Property Check** en Create, Update y Delete, restringido a tu rol editor o admin, para que solo tu equipo gestione el contenido.
  </Accordion>

  <Accordion title="App multi-tenant (por ejemplo, una plataforma SaaS o sistema escolar)">
    Distintas empresas, escuelas o departamentos cada uno usa la app, pero sus datos deben mantenerse completamente separados entre sí.

    * **Visibilidad de la app:** Public o Workspace, dependiendo de tu configuración.
    * **Requerir login:** Sí.
    * **Permisos:** Usa **Entity-User Field Comparison** para coincidir un campo en cada registro con una propiedad en la cuenta de la persona conectada. Por ejemplo, si cada registro tiene un campo `company_id` y cada cuenta de usuario tiene una propiedad `company_id` que coincide, define Entity field como `company_id` y User field como `company_id`. Cada persona solo ve registros que pertenecen a su empresa. Para acceso admin dentro de un grupo, combina esto con un **User Property Check** en el rol admin.
  </Accordion>
</AccordionGroup>

***

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Necesito configurar permisos yo mismo?">
    No. Base44 configura permisos automáticamente al crear tablas de datos. Puedes pedirle al chat de IA actualizarlos en cualquier momento en lenguaje natural, o ajustarlos manualmente desde la página **Permissions** de cada tabla. Antes de publicar, vale la pena correr un escaneo de seguridad para confirmar que todo se vea bien.
  </Accordion>

  <Accordion title="¿Por qué mis permisos no están restringiendo el acceso correctamente?">
    Abre la tabla afectada en tu dashboard y revisa su página **Permissions**. Si hay un banner **Permission risks detected**, haz clic en **Fix** para aplicar las reglas recomendadas, o **More details** para revisarlas primero. También puedes correr un escaneo de seguridad desde la pestaña **Security** para una vista completa de los problemas a través de tu app, o describe el problema al chat de IA y pídele que lo arregle por ti. Una vez que hayas hecho cambios, prueba tu app en modo **Preview** iniciando sesión como distintos roles para confirmar que el acceso funciona como se espera.
  </Accordion>

  <Accordion title="¿Cambiar permisos afectará a las personas que ya están usando mi app?">
    Sí, los cambios tienen efecto de inmediato. Antes de hacer cambios, usa el modo **Preview** para probar cómo se comporta tu app con las nuevas reglas. Inicia sesión como distintos roles para confirmar que el acceso funciona como esperas.
  </Accordion>

  <Accordion title="¿Puedo crear más roles que solo user y admin?">
    Sí. Añade un campo personalizado (como `department` o `access_level`) a tu tabla User y define valores como manager o viewer. Luego usa reglas **User Property Check** en ese campo para dar a cada rol el nivel correcto de acceso. Puedes pedirle al chat de IA configurar esto por ti.
  </Accordion>

  <Accordion title="¿Puedo restringir el acceso a campos específicos en un registro?">
    No. Los permisos aplican a tablas de datos enteras, no a campos individuales. Si necesitas limitar qué datos se devuelven de una tabla, puedes hacerlo con funciones de backend, que te permiten filtrar o transformar datos antes de que lleguen a la app. Puedes pedirle al chat de IA ayudarte a configurar esto.
  </Accordion>

  <Accordion title="El editor de permisos está mostrando JSON en lugar de la matriz de reglas. ¿Qué pasó?">
    Si tus permisos se configuraron con reglas demasiado complejas para que el editor visual las represente, como condiciones que usan operadores avanzados, el editor regresa a una vista solo JSON. Aún puedes editar el JSON directamente, o empezar de cero marcando una casilla en la matriz, lo que te pedirá confirmar antes de reemplazar la configuración existente.
  </Accordion>
</AccordionGroup>

<Note>Esta página se tradujo con IA. Para información más precisa y actualizada, consulta la [versión en inglés](/). </Note>
