terminal
Eng kichik huquq: rollar, ustun granti va RLS
Лёгкийbolt+20 XPflagОбязательная
Bazani yoqish: baza-start (har lab boshida server o'chiq bo'ladi). psql'ga kirish: hn (bu psql -h /tmp -U postgres -d hn uchun qisqartma; fayl bajarish: hn -f fayl.sql, bitta so'rov: hn -c "..."). hujjat(id, egasi, matn, maxfiy) jadvalida olim (3 qator) va karim (2 qator)ning yozuvlari bor. Checker huquqlarni katalogdan o'qib qo'ymaydi — aynan shu rollar nomidan so'rov bajarib ruxsat/rad javobini oladi. Vazifa (hammasi hn ichida bajariladi) Guruh va a'zolar: create role app read nologin; va login'siz ikki rol: olim, karim; ikkalasini grant app read to ... bilan guruhga oling. Ustun darajali huquq : app readga hujjatdan FAQAT id, egasi, matn ustunlarini o'qish huquqi (maxfiy YO'Q!). Darsdagi tartib: avval revoke all ... from app read, keyin grant select (id, egasi, matn) .... Yozish uchun: grant insert (egasi, matn) on hujjat to app read; va serial id ishlashi uchun (darsdagi eslatma): grant usage, select on sequence hujjat id seq to app read; RLS (ikkala qadam!): alter table hujjat enable row level security; + ikkita siyosat: o'qish: for select using (egasi = current user); yozish: for insert with check (egasi = current user). Muvaffaqiyat mezoni (checker set role bilan sinaydi) set role olimda select id, egasi, matn ISHLAYDI, select RAD (maxfiy ustun). RLS: olim faqat 3 ta, karim faqat 2 ta qator ko'radi. olim egasi = 'karim' qator YOZA OLMAYDI, o'ziniki — yozadi.