Co je zabezpečení na úrovni řádků?
Zabezpečení na úrovni řádků (RLS) je funkce databáze, která řádek po řádku rozhoduje, které záznamy smí každý uživatel číst nebo měnit, takže zákazník vidí jen své objednávky, i kdyby aplikace žádala víc.
Bez něj žije pravidlo „uživatelé vidí jen svá data“ v kódu aplikace. Pokud některá obrazovka nebo API na kontrolu zapomene, mohou soukromá data uniknout.
S řádkovým zabezpečením žije pravidlo v samotné databázi. Napíšete politiku, například „řádek v objednávkách je viditelný jen tehdy, když jeho customer_id odpovídá přihlášenému uživateli“, a databáze ji použije na každý dotaz.
Postgres řádkové zabezpečení podporuje a některé backendové služby na něm silně stojí, protože jejich aplikace mluví s databází přímo z prohlížeče. V takových nastaveních může být tabulka bez politiky čitelná pro kohokoli.
RLS je jedna vrstva ochrany, ne jediná. Aplikace stále potřebují řádné přihlášení, kontroly na serveru a pečlivé zacházení s přístupem správce.
Příklady
- Klienti v portálu vidí jen své vlastní dokumenty
- Každý tým v nástroji vidí jen své vlastní projekty
Otázky
Potřebuji zabezpečení na úrovni řádků?
Pokud vaše aplikace ukládá soukromá data mnoha uživatelů a některá její část se dotazuje databáze přímo z prohlížeče, pak ano. Pokud veškerý přístup jde přes backend, který kontroluje oprávnění, je RLS navíc jako pojistka.
Je zabezpečení na úrovni řádků totéž co role?
Ne. Role popisují, jaký typ uživatele někdo je, například administrátor nebo člen. Zabezpečení na úrovni řádků používá údaje jako id uživatele nebo roli k rozhodnutí, na které konkrétní řádky může sáhnout.
Viz také
Mythex · Pricing · Vytvořte cokoli s AI · Šablony webů a aplikací · Mythex v porovnání · Slovník tvorby aplikací s AI · Bezplatné nástroje pro tvorbu aplikací s AI · English