Preskoči na glavni sadržaj
Zee Akademija · Lekcija 12 · Baze Podataka — Supabase & PostgreSQL

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

  1. 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!