034. Rollar, GRANT va RLS
Bu mavzuda huquqlar va qator darajasidagi xavfsizlik bo'yicha 15 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.
Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.
1. (dokon, oson) 'tahlilchi' rolini (LOGIN yo'q) yarating va u mavjudligini tekshiring.
2. (dokon, oson) Rolga mijoz jadvalida SELECT huquqini bering va has_table_privilege bilan tekshiring.
3. (dokon, oson) REVOKE: SELECT huquqini bering va qaytarib oling; natijani tekshiring.
4. (dokon, o'rta) Guruh roli: 'savdo' guruh rolini yarating, 'sotuvchi' rolini unga a'zo qiling; pg_has_role bilan tekshiring.
5. (dokon, o'rta) Ustun darajasida huquq: faqat mahsulot.nom va narx ustunlariga SELECT bering; has_column_privilege bilan qoldiq ustunni tekshiring.
6. (dokon, o'rta) GRANT ... ON ALL TABLES IN SCHEMA: rolga dokon sxemasidagi hamma jadvalga SELECT; buyurtma uchun tekshiring.
7. (dokon, qiyin) RLS: mijoz jadvalida faqat shahar='Toshkent' qatorlarini ko'rsatuvchi policy; rol sifatida SELECT sonini tekshiring.
8. (dokon, qiyin) DEFAULT PRIVILEGES: kelajak jadvallar uchun SELECT huquqi: ALTER DEFAULT PRIVILEGES; keyin yangi jadval yaratib tekshiring.
9. (maktab, oson) Rolga baho jadvalida faqat SELECT va INSERT berish; UPDATE tekshiruvi.
10. (maktab, qiyin) RLS: o'qituvchi faqat o'z fanining baholarini ko'rsin: policy USING (fan_id=1); rol bilan baholar soni.
11. (bank, oson) 'kassir' roli: tranzaksiya jadvalida INSERT, hisob jadvalida SELECT. Tekshiruv.
12. (bank, o'rta) VIEW orqali cheklangan kirish: mijoz_ochiq view yaratib rolga faqat view ga SELECT bering; jadvalga huquq yo'qligini tekshiring.
13. (bank, qiyin) RLS: mijoz faqat o'z filiali (filial_id=1) hisoblarini ko'rishi uchun policy (hisob -> mijoz orqali EXISTS). Rol bilan hisoblar soni.
14. (kutubxona, oson) 'kutubxonachi' roli ijara jadvalida SELECT, INSERT, UPDATE huquqlariga ega; DELETE yo'qligini tekshiring.
15. (kutubxona, qiyin) RLS WITH CHECK: faqat azo_id=1 bo'lgan ijaralarni qo'shishga ruxsat beruvchi policy; rol sifatida azo_id=1 ijara qo'shing, keyin sonini tekshiring.