Row Level Security (RLS): Sigurnost podataka na razini retka
RLS je najvažnija sigurnosna značajka Postgresa. Sprječava da jedan korisnik pročita ili izmijeni podatke drugog korisnika.
Što ćete naučiti
- Ako je RLS isključen, svatko tko ima javni Anon ključ može pročitati sve retke u tablici!
- Uvijek uključite "Enable Row Level Security" na svakoj tablici u bazi.
- Pravila (Policies): Točno definiraju tko smije raditi SELECT, INSERT, UPDATE ili DELETE.
- Anon korisnici: Mogu npr. samo raditi INSERT u kontakt formu, ali ne mogu čitati tuđe upite.
Primjer sigurnosnog pravila za kontakt formu
Omogućite posjetiteljima slanje upita, ali zabranite čitanje:
- Policy name: "Omogući anonimno slanje upita"
- Allowed operation: INSERT only
- Target role: anon, authenticated
Korak po korak
SQL naredba za aktivaciju RLS-a
ALTER TABLE leads ENABLE ROW LEVEL SECURITY;Zaključava tablicu i primjenjuje stroga pravila pristupa.
Savjet iz prakse
Za administratorske operacije u Next.js Server Actions koristite "SUPABASE_SERVICE_ROLE_KEY" koji zaobilazi RLS, ali taj ključ NIKADA ne smije završiti na klijentu!