6-modul · 10-dars: Role · Grant · Schema
Daraja: O'rta
Role · Grant · Schema. PostgreSQL bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Role · Grant · Schema tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya PostgreSQL ROLE foydalanuvchi ham, huquqlar guruhi ham bo'lishi mumkin. LOGIN atributi ulanishga ruxsat beradi; role membership orqali guruh huquqlari tarqatiladi. GRANT privilege yoki a'zolik beradi, REVOKE uni olib tashlaydi. Jadvalga SELECT berish bilan schema USAGE va database CONNECT kabi huquqlar bir xil emas. Ilova superuser bo'lib ishlamasin. O'qish, yozish va migration uchun alohida minimal rollar ajrating; kelajakda yaratiladigan obyektlar uchun ALTER DEFAULT PRIVILEGESni egasi kontekstida sozlang. Parolni SQL fayli yoki gitga yozish o'rniga himoyalangan credential boshqaruvini ishlating. Schema bitta database ichidagi namespace: bir xil nomli jadvallar turli schemada yashashi mumkin. search_path qaysi obyekt topilishini boshqaradi, shuning uchun ishonchsiz yoziladigan schemani oldinga qo'yish xavfli. Tablespace obyektlar fayllari joylashadigan fizik katalogni belgilaydi; katalog huquqlari va backup strategiyasi bilan administrator boshqaradi. Bu jadvalning mantiqiy scheması emas.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/6-module%28database%29.md) [Rasmiy qo‘llanma](https://www.postgresql.org/docs/current/)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
-- Faqat ajratilgan test bazasida administrator bajaradi:
CREATE ROLE study_reader NOLOGIN;
GRANT USAGE ON SCHEMA public TO study_reader;
-- GRANT SELECT ON TABLE public.topics TO study_reader;
Keng tarqalgan xatolar
- Ilovaga SUPERUSER berish oddiy SELECT huquqini berishning muqobili emas.
Mashqlar
- Read-only rol uchun kerakli huquqlar ro'yxatini yozing; INSERT rad etilishini test qiling.
- Faqat SELECT huquqi bor foydalanuvchi yaratib, undan INSERT qilishga urinib ko'ring.
Teglar: modul-06, pdp, nazariya