Čo je row-level security?
Row-level security (RLS) je funkcia databázy, ktorá riadok po riadku rozhoduje, ktoré záznamy každý používateľ smie čítať alebo meniť. Zákazník tak vidí len svoje objednávky, aj keby aplikácia žiadala viac.
Bez nej pravidlo „používatelia vidia len svoje dáta“ žije v kóde aplikácie. Ak niektorá obrazovka alebo API na kontrolu zabudne, súkromné dáta môžu uniknúť.
S row-level security žije pravidlo v samotnej databáze. Napíšete politiku, napríklad „riadok v objednávkach je viditeľný len vtedy, keď sa jeho customer_id zhoduje s prihláseným používateľom“, a databáza ju uplatní na každý dotaz.
Postgres row-level security podporuje a niektoré backendové služby sa na ňu silno spoliehajú, pretože ich aplikácie komunikujú s databázou priamo z prehliadača. V takých nastaveniach môže byť tabuľka bez politiky čitateľná pre ktoréhokoľvek používateľa.
RLS je jedna vrstva ochrany, nie jediná. Aplikácie stále potrebujú riadne prihlasovanie, kontroly na serveri a opatrné zaobchádzanie s prístupom administrátorov.
Príklady
- Klienti v portáli vidia len svoje dokumenty
- Každý tím v nástroji vidí len svoje projekty
Otázky
Potrebujem row-level security?
Ak vaša aplikácia ukladá súkromné dáta pre mnoho používateľov a niektorá jej časť dotazuje databázu priamo z prehliadača, áno. Ak všetky prístupy idú cez backend, ktorý kontroluje oprávnenia, je RLS dodatočnou bezpečnostnou sieťou.
Je row-level security to isté ako roly?
Nie. Roly popisujú, aký typ používateľa niekto je, napríklad administrátor alebo člen. Row-level security používa údaje, ako je id používateľa alebo jeho rola, aby rozhodla, ku ktorým konkrétnym riadkom sa dostane.
Pozri tiež
Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English