3-amaliy ish
Mavzu: Foydalanuvchilarning ma’lumotlarga nisbatan huquqlarini aniqlash
SQL ma’lumotlar bazasida har bir foydalanuvchi ko’plab vakolatlarga ega bo’ladi. Vakolat- bu ma’lum operatsiyani bajara olish huquqi. Minimal vakolat- bu tizimga kirish bo’lib, bu jarayonda foydalanuvchining identifikatori va paroli tekshiriladi. Vakolatlar ob’yektli va tizimliga bo’linadi. Avval ANSI standarti tomonidan belgilangan ob’yektli vakolatlarni ko’rib chiqamiz. Tizimli vakolatlar standart tomonidan belgilanmagan, lekin SQLdan foydalanadigan deyarli barcha tizimlarda qo’llaniladi. Ob’yektli vakolatlar ma’lumotlar bazasining ma’lum ob’yektlari (jadvallari, viewlari) uchun foydalanuvchining ulardan foydalanish huquqlarini aniqlaydi. Ya’ni foydalanuvchi turli jadvallar yoki hatto ustunlar bilan ishlaganda turli huquqlarga ega bo’lishi mumkin.
Jadvalni yaratgan foydalanuvchi u bilan ishlashda barcha vakolatlarga ega bo’ladi va u bilan ishlash uchun boshqa foydalanuvchilarga vakolatlarini belgilashi mumkin.
Vakolatlar turlari:
SELECT, INSERT, UPDATE va DELETE- jadval bilan ishlashda ma’lumotlarni ko’rish, kiritish, o’zgartirish va o’chirish huquqi.
REFERENCES- bir jadvalda qandaydir tashqi kalitni aniqlab, jadvalni bog’lash huquqi.
ANSI standarti tomonidan aniqlangan vakolatlardan tashqari ba’zi SQL realizatsiyalarda quyidagidek ob’yektli vakolatlar mavjud:
ALTER – Jadval yoki jadvallar tuzilmasini modifikatsiyalash huquqi.
INDEX – indekslar yaratish huquqi.
SYNONIM – jadva sinonimlarini yarata olish huquqi.
Shaxsiy jadvallardan foydalana olish vakolatlarini belgilash quyidagi komanda orqali amalga oshiriladi:
GRANT vakolatlar_ro’yxati ON ob’yekt TO foydalanuvchilar_ro’yxati [WITH GRANT OPTION];
Vakolatlar_ro’yxati – vakolatlar ro’yxati vergullar bn ajratiladi. UPDATE va REFERENCES vakolatlari uchun nomdan keyin qavs ichida bu vakolat ta’sir etuvchi jadval ustunlari ro’yxati ko’rsatiladi. Mos holda foydalanuvchi faqat shu ustunlarda qiymatlarni o’zgartirish huquqiga ega bo’ladi. Boshqa vakolatlar uchun ustunlarni ko’rsatish mumkin emas. INSERT va DELETE komandalari uchun bu ma’noga ega emas, jadvalning ba’zi ustunlarini ko’ra olish huquqi esa VIEW yaratish orqali amalga oshiriladi.
Ob’yekt – jadval yoki VIEW nomi. ANSI standartida bu inobatga olinmagan, ammo SQLning ba’zi realizatsiyalari bu yerda jadval yoki VIEWlar ro’yxatini ko’rsatish imkonini beradi.
Foydalanuvchilar_ro’yxati – vakolatlar tayinlanadigan foydalanuvchilar ro’yxati. Bu yerda foydalanuvchi tomonidan beriladigan identifikatorlar ko’rsatiladi. Har bir foydalanuvchi o’z identifikatoriga ega bo’lishi mumkin yoki bir nechta foydalanuvchi bir identifikatorga ega bo’ladi.
WITH GRANT OPTION – foydalanuvchi boshqa foydalanuvchilarga vakolatlarni belgilash huquqini qo’lga kiritadi.
Boshqa foydalanuvchining jadvalidan foydalanish huquqini qo’lga kiritgan foydalanuvchi o’z so’rovlarida uni quyidagicha aniqlashi mumkin
ega_identifikatori.jadval_nomi.
Misol.
Foydalanuvchi Valiyev quyidagi komandadan foydalansin:
GRANT SELECT, UPDATE ON ish_rejasi TO Aliyev WITH GRANT OPTION;
Endi jadvalni ko’rish uchun Aliyev quyidagi so’rovdan foydalanishi kerak:
SELECT * FROM Valiyev.ish_rejasi
Bundan keyin Aliyev guruhning boshqa a’zolariga vakolatlarni belgilashi mumkin:
GRANT SELECT ON Valiyev.ish_rejasi TO Sobirov;
Bu komanda jadval egasini o;’zgartirmaydi va Sobirov jadvalni ko’rishi uchun huddi shu komandadan foydalanishi kerak.
Foydalanuvchi quyidagi komanda orqali vakolatlarni belgilash huquqidan mahrum qilinishi mumkin:
REVOKE vakolatlar _ro’yxati ON ob’yekt
FROM foydalanuvchilar_ro’yxati
Bunda kim vakolatlardan mahrum qilishi mumkin degan savol tug’iladi. Agar foydalanuvchi vakolatlardan mahrum bo’lsa, undan vakolatlarni olgan foydalanuvchilar ham bu vakolatlardan mahrum bo’ladi. Barcha tizimlarda kaskad yondashuv qo’llaniladi, ya’ni, agar foydalanuvchi vakolatlardan mahrum bo’lsa, undan vakolatlarni qo’liga kiritgan foydalanuvchilar ham bu vakolatlarini yo’qotadilar.
Alohida ob’yektlar terminlarida aniqlanmaydigan vakolatlar tizim vakolatlari yoki ma’lumotlar ba’zasiga mualliflik huquqi deb nomlanadi. Bu vakolatlar standartlashtirilmagan va ularni qo’llashda turli yondashuvlar mavjud.
Odatda tizimli vakolatlarning quyidagi turlari farqlanadi:
CONNECT – tizimga kirish va VIEW hamda sinonimlar yarata olish huquqi.
RESOURCE – bazaviy jadvallar yaratish huquqi.
DBA – “superfoydalanuvchi” (administrator) vakolati.
Vakolatlarni belgilash va ulardan mahrum qilish GRANT yoki REVOKE komandalari orqali amalga oshiriladi.
1-misol:
Foydalanuvchini tizimda ro’yxatdan o’tkazish.
GRANT CONNECT TO Farhodov
PASSWORD parol_1;
2-misol:
Tizimdan foydalanuvchini o’chirish
REVOKE CONNECT FROM Farhodov;
Bunda oldindan o’zi yaratgan barcha ob’yektlarni o’chirishi kerak.
Nazorat savollari:
Vakolat nima?
Vakolatlar nechchiga ajraladi?
Ob’yektli vakolatlarga misol keltiring.
Vakolatlarni kim belgilaydi?
Vakolatlarni belgilash qaysi komanda orqali amalga oshiriladi?
Vakolatlarni olib qo’yish qaysi komanda orqali amalga oshiriladi?
Do'stlaringiz bilan baham: |