Cos'è la row-level security?
La row-level security (RLS) è una funzione del database che decide, riga per riga, quali record ogni utente può leggere o modificare, così un cliente vede solo i propri ordini anche se l'app ne chiede di più.
Senza di essa, la regola «gli utenti vedono solo i propri dati» vive nel codice dell'app. Se una schermata o un'API dimentica di controllare, i dati privati possono trapelare.
Con la row-level security, la regola vive nel database stesso. Scrivi una policy come «una riga di ordini è visibile solo quando il suo customer_id coincide con l'utente che ha effettuato l'accesso», e il database la applica a ogni query.
Postgres supporta la row-level security, e alcuni servizi backend si affidano molto ad essa perché le loro app parlano con il database direttamente dal browser. In questi casi, una tabella senza policy può essere leggibile da chiunque.
La RLS è uno strato di protezione, non l'unico. Le app hanno comunque bisogno di un accesso corretto, di controlli lato server e di una gestione attenta dell'accesso amministratore.
Esempi
- I clienti in un portale vedono solo i propri documenti
- Ogni team in uno strumento vede solo i propri progetti
Domande
Mi serve la row-level security?
Se la tua app conserva dati privati di molti utenti e una parte di essa interroga il database direttamente dal browser, sì. Se tutti gli accessi passano da un backend che verifica i permessi, la RLS è una rete di sicurezza in più.
La row-level security è la stessa cosa dei ruoli?
No. I ruoli descrivono che tipo di utente sei, come amministratore o membro. La row-level security usa dati come l'id dell'utente o il suo ruolo per decidere a quali righe specifiche può accedere.
Vedi anche
- Come aggiungere il controllo degli accessi basato sui ruoli
- Checklist di sicurezza per app create con l'AI
Mythex · Pricing · Crea qualsiasi cosa con l'AI · Template per siti web e app · Mythex a confronto · Glossario per creare app con l'AI · Strumenti gratuiti per creare app con l'AI · English