Skip to main content
Questa pagina fa parte di una skill per agenti IA di programmazione ed è scritta per gli agenti, non per gli umani. Per la documentazione Base44 leggibile dagli umani, consulta la documentazione per sviluppatori.

Esempi RLS

Pattern pratici di Row-Level Security per tipi comuni di applicazioni. Importante: Base44 RLS supporta:
  • Operatori logici: $or, $and, $nor per combinare condizioni
  • Operatori sui campi (per i campi data.*): $in, $nin, $ne, $all
  • user_condition: solo uguaglianza (nessun operatore)

Contenuti


Pattern semplici (JSON Schema)

Questi pattern funzionano con il formato RLS JSON schema.

App Todo - accesso solo al proprietario

Gli utenti vedono e gestiscono solo le proprie attività.

Modulo di contatto - creazione pubblica, lettura solo admin

Chiunque può inviare, solo gli admin possono visualizzare le sottomissioni.

Profilo utente - auto-gestione

Gli utenti possono accedere solo al proprio profilo.

Dati di dipartimento - accesso allo stesso dipartimento

Gli utenti possono vedere solo i record del proprio dipartimento.

Abbonamento - gestito dall’admin, leggibile dall’utente tramite campo email

Nota: questo pattern permette solo agli utenti di leggere il proprio abbonamento. Gli admin devono usare l’interfaccia Dashboard per configurare l’accesso in lettura aggiuntivo per se stessi.

Dati privati - solo proprietario

Lettura pubblica, scrittura autenticata

Chiunque può leggere, solo gli utenti loggati possono creare/modificare i propri record.

Uso degli operatori

Operatori logici

Combina più condizioni usando $or, $and o $nor: Accesso proprietario O admin:
Più ruoli con $or:

Operatori sui campi per campi data.*

Usa $in, $nin, $ne, $all per confrontare i campi data delle entità: Accesso in base ai tag ($in):
Escludi stati specifici ($nin):
Non uguale ($ne):
Tutti i tag devono corrispondere ($all):

Combinare operatori logici e sui campi


Esempi di sicurezza a livello di campo

Controlla l’accesso a campi specifici all’interno di un’entità.

Campo sensibile stipendio

Campi interni solo admin


Pattern complessi (interfaccia Dashboard o backend)

Alcuni pattern potrebbero comunque richiedere l’interfaccia Dashboard o le funzioni backend.

Relazioni bidirezionali (ad es. amicizie, match)

Requisito: entrambe le parti in una relazione dovrebbero avere accesso. Ora possibile con $or:
Soluzioni alternative:
  1. Ridisegno dell’entità: memorizza due record per relazione (uno per ogni parte)
  2. Funzione backend: interroga con logica personalizzata

Logica di business complessa

Requisito: l’accesso dipende da più campi entità con condizioni complesse. Limitazione JSON Schema: anche se gli operatori aiutano, la logica di business molto complessa potrebbe comunque essere difficile da esprimere. Opzioni di soluzione:
  1. Funzione backend: implementa la logica di accesso personalizzata
  2. Combina regole più semplici: dividi le regole complesse in regole più semplici a livello di entità e di campo

Migliori pratiche

Strategia di sicurezza

Usa una combinazione di RLS a livello di entità e sicurezza a livello di campo:

Quando usare ogni approccio

Pattern comuni di ruoli

Riepilogo degli operatori supportati

Riepilogo delle limitazioni

Questa pagina è stata tradotta utilizzando l’IA. Per informazioni più accurate e aggiornate, consulta la versione inglese.