GRANT, REVOKE va DENY ma'lumotlar bazasi ruxsatnomalari
Ma'lumotlar boshqaruvi tili (DCL) - tuzilgan so'rovlar tili (SQL) ning pastki qismidir va ma'lumotlar bazasi administratorlariga xavfsizlikka oid ma'lumotlar bazalariga xavfsizlikni kirishni sozlash imkonini beradi. Ma'lumotlar bazasi moslamalarini qo'shish va o'chirish uchun ishlatiladigan Ma'lumotlarni aniqlash tili (DDL) ni va ma'lumotlar bazasini mazmunini olish, kiritish va o'zgartirish uchun ishlatiladigan Data Manipulation Language (DML) ni to'ldiradi.
DCL, SQL subkeysining eng oddiyidir , chunki u faqat uchta buyruqdan iborat: GRANT, REVOKE va DENY. Birgalikda, ushbu uch buyruqlar ma'murlarga ma'lumotlar bazasi ruxsatini juda jozibali usulda o'rnatish va o'chirish moslashuvchanligi bilan ta'minlaydi.
GRANT Buyruq bilan ruxsatlar qo'shish
GRANT buyrug'i administratorlar tomonidan ma'lumotlar bazasi foydalanuvchisiga yangi ruxsatlarni kiritish uchun ishlatiladi. Quyida keltirilgan juda oddiy sintaksisi bor:
GRANT [imtiyoz] ON [ob'ekt] TO [foydalanuvchi] [GRANT OPTION bilan]Bu buyruq bilan ta'minlay oladigan parametrlarning har birida quyidagicha:
- Privilege yoki ALL (turli ruxsatlarni berish uchun) kalit so'zini yoki muayyan ma'lumotlar bazasi ruxsatini yoki ruxsat to'plamini bo'lishi mumkin. Bunga misollar: CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE va CREATE VIEW.
- Ob'ekt har qanday ma'lumotlar bazasi obyekti bo'lishi mumkin. Joriy imtiyozli variantlar ushbu bandda siz kiritgan ma'lumotlar bazasi turiga qarab o'zgarib turadi. Odatda ob'ekt ma'lumotlar bazasi, funktsiya, saqlangan protsedura , jadval yoki ko'rinish bo'ladi.
- Foydalanuvchining ma'lumotlar bazasi foydalanuvchisi bo'lishi mumkin. Shuningdek, siz rol bazasiga asoslangan ma'lumotlar bazasi xavfsizligidan foydalanmoqchi bo'lsangiz, ushbu bandda foydalanuvchi uchun rolni almashtirishingiz mumkin.
- GRANT buyrug'i oxirida ixtiyoriy GRANT OPTION punkti bilan ixtiyoriy qo'shilsa , siz faqat ko'rsatilgan foydalanuvchi uchun SQL bayonnomasida aniqlangan ruxsatlarni berishni emas, balki foydalanuvchini boshqa ma'lumotlar bazasi foydalanuvchilari uchun o'sha ruxsatlarni berish qobiliyatini berasiz. Shuning uchun ushbu banddan ehtiyotkorlik bilan foydalaning.
Misol uchun, Siz Joe ismli ma'lumotlar bazasidagi xodimlar jadvalidan ma'lumotlarni olish qobiliyatini foydalanuvchi Sizga berishni xohlaysiz. Quyidagi SQL buyrug'ini ishlatishingiz mumkin:
HR.employees-ni JO'NAga topshirishJou endi xodimlar jadvalidan ma'lumotlarni olish qobiliyatiga ega bo'ladi. Biroq, u boshqa foydalanuvchilarga ushbu jadvalda ma'lumot olish uchun ruxsat berishga qodir emas, chunki GRANT bayonnomasida GRANT OPTION so'zlari bilan qo'shilmasligingiz kerak.
Ma'lumotlar bazasini ochish
REVOKE buyrug'i oldindan berilgan ruxsatdan foydalanuvchining ma'lumotlar bazasidan foydalanishni olib tashlash uchun ishlatiladi. Ushbu buyruqning sintaksisi quyidagicha tavsiflanadi:
REVOKE [GRANT OPTION FOR] [ruxsat] ON [ob'ekt] FROM [foydalanuvchi] [CASCADE]REVOKE buyrug'i parametrlari bo'yicha quyidagicha:
- Ruxsat identifikatsiya qilingan foydalanuvchidan olib tashlash uchun ma'lumotlar bazasi ruxsatini belgilaydi. Buyruq oldindan belgilangan ruxsat uchun avval GRANT va DENY tasdiqlarini bekor qiladi.
- Ob'ekt har qanday ma'lumotlar bazasi obyekti bo'lishi mumkin. Joriy imtiyozli variantlar ushbu bandda siz kiritgan ma'lumotlar bazasi turiga qarab o'zgarib turadi. Odatda ob'ekt ma'lumotlar bazasi, funktsiya, saqlangan protsedura, jadval yoki ko'rinish bo'ladi.
- Foydalanuvchining ma'lumotlar bazasi foydalanuvchisi bo'lishi mumkin. Shuningdek, siz rol bazasiga asoslangan ma'lumotlar bazasi xavfsizligidan foydalanmoqchi bo'lsangiz, ushbu bandda foydalanuvchi uchun rolni almashtirishingiz mumkin.
- FOYDALANUVChILARNI QO'LLAB-QUVVATLAShTIRIShI ko'rsatilgan foydalanuvchining boshqa foydalanuvchilarga berilgan ruxsatni berish qobiliyatini yo'q qiladi. Eslatma : Agar REVOKE iborasida GRANT OPTION FOR yondirmasini kiritgan bo'lsangiz, asosiy ruxsat bekor qilinmaydi . Ushbu bo'lim faqatgina berish huquqini bekor qiladi.
- CASCADE parametr, ko'rsatilgan foydalanuvchining ruxsat bergan har qanday foydalanuvchidan belgilangan ruxsatni bekor qiladi.
Misol uchun, quyidagi buyruq avvalgi misolda Jo'ya berilgan ruxsatni bekor qiladi:
Jou JONning HR.employees tomonidan REVOKE SELECTMa'lumotlar bazasini erkin foydalanishni rad etish
DENY buyrug'i foydalanuvchini muayyan ruxsat olishni aniq ravishda oldini olish uchun ishlatiladi. Bu foydalanuvchi ruxsat berilgan roldan yoki guruhning a'zosi bo'lganida va siz istisno yaratib, ushbu foydalanuvchining izn olishni taqiqlashni xohlaysiz. Ushbu buyruqning sintaksisi quyidagicha:
DENY [ruxsat] ON [ob'ekt] TO [foydalanuvchi] DENY buyrug'i parametrlari GRANT buyrug'i uchun ishlatiladigan holatlar bilan bir xil bo'ladi.
Misol uchun, agar siz Matto hech qachon xodimlar jadvalidan ma'lumotlarni o'chirish qobiliyatini olmaganligini ta'minlashni istasangiz, quyidagi buyruq bering: