GRANT, REVOKE və DENY verilənlər bazası icazələri
Data Control Language (DCL), strukturlaşdırılmış Sorgu Dilinin (SQL) bir alt kümesidir və veritabanı yöneticilerinin ilişkisel veritabanlarına güvenlik erişimini yapılandırmasına imkan verir. Verilənlər bazası obyektlərini əlavə etmək və silmək üçün istifadə olunan Data Definition Language (DDL) və məlumat bazasının məzmununu almaq, daxil etmək və dəyişdirmək üçün istifadə olunan Data Manipulyasiya Dilini (DML) tamamlayır.
DCL, SQL alt kümelerinin ən sadəidir , çünki bu, yalnız üç əmrdən ibarətdir: GRANT, REVOKE və DENY. Kombinə edilmiş, bu üç komanda administratorları verilənlər bazası icazələrini son dərəcə zərif bir şəkildə qurmaq və aradan qaldırmaq üçün rahatlıq təmin edir.
Qrant Komandanlığı ilə icazələrin alınması
GRANT əmri verilənlər bazası istifadəçisinə yeni icazələrin əlavə olunması üçün administratorlar tərəfindən istifadə olunur. Aşağıdakı kimi müəyyən edilmiş çox sadə sintaksis var:
GRANT [imtiyaz] ON [obyekt] TO [istifadəçi] [GRANT OPTION ilə]Bu əmr ilə təmin edə biləcəyiniz parametrlərin hər birində:
- Privilege ya ALL (müxtəlif icazələrin verilməsi üçün) sözü və ya müəyyən bir verilənlər bazası icazəsi və ya icazələrin dəsti ola bilər. Nümunələr CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE və CREATE VIEW daxildir.
- Hər hansı bir verilənlər bazası obyekti ola bilər. Müvafiq imtiyaz variantları bu bənddə daxil etdiyiniz verilənlər bazası obyektinin növünə əsasən dəyişir. Tipik olaraq, obyekt bir verilənlər bazası, funksiya, saxlanılan prosedur , masa və ya görünüş olacaq.
- İstifadəçi istənilən verilənlər bazası istifadəçisi ola bilər. Rol-bazlı verilənlər bazası təhlükəsizliyindən istifadə etmək istəyirsinizsə, bu bənddə istifadəçi üçün də rolu əvəz edə bilərsiniz.
- GRANT komutunun sonunda əlavə olaraq GRANT OPTION bəndini əlavə edirsinizsə, göstərilən istifadəçiyə yalnız SQL bəyannaməsində göstərilən icazələri vermir, həm də istifadəçiyə digər verilənlər bazası istifadəçilərinə eyni icazələrin verilməsi imkanı verir. Bu səbəbdən bu bənddə diqqətlə istifadə edin.
Məsələn, istifadəçini Joe adlı bir verilənlər bazasında işçilərin cədvəlindən məlumat almaq qabiliyyətinə malik olmağı xahiş edirəm. Aşağıdakı SQL əmrini istifadə edə bilərsiniz:
HR.employees haqqında Joe SEÇİNJoe indi işçilərin cədvəlindən məlumat almaq imkanı əldə edəcək. Lakin, GRANT bəyanatında GRANT OPTION ilə yanaşı daxil etmədiyinə görə, digər istifadəçilərə o cədvəldən məlumat almaq icazəsi verə bilməz.
Verilənlər bazasını çıxarma
REVOKE əmri, daha əvvəl bu cür girişi təmin edən bir istifadəçi verilənlər bazasına çıxmaq üçün istifadə olunur. Bu əmr üçün sintaksis aşağıdakı kimi müəyyən edilir:
REVOKE [QEYRİ OPTION FOR] [icazə] ON [obyekt] FROM [istifadəçi] [CASCADE]REVOKE əmrinin parametrləri üzrə buraxılış:
- İzin , müəyyən edilmiş istifadəçidən çıxmaq üçün verilənlər bazası icazələrini müəyyənləşdirir. Komanda müəyyən edilmiş icazə üçün daha əvvəl edilən GRANT və DENY iddialarını geri götürür.
- Hər hansı bir verilənlər bazası obyekti ola bilər. Müvafiq imtiyaz variantları bu bənddə daxil etdiyiniz verilənlər bazası obyektinin növünə əsasən dəyişir. Tipik olaraq, obyekt bir verilənlər bazası, funksiya, saxlanılan prosedur, masa və ya görünüş olacaq.
- İstifadəçi istənilən verilənlər bazası istifadəçisi ola bilər. Rol-bazlı verilənlər bazası təhlükəsizliyindən istifadə etmək istəyirsinizsə, bu bənddə istifadəçi üçün də rolu əvəz edə bilərsiniz.
- Maddə üçün GRANT OPTİSE , müəyyən istifadəçinin digər istifadəçilərə müəyyən icazə vermək qabiliyyətini qaldırır. Qeyd : REVOKE ifadəsində GRANT OPTION bəndini daxil etsəniz, əsas icazə ləğv edilmir . Bu bənd yalnız verilməsi qabiliyyətini ləğv edir.
- CASCADE seçimi də müəyyən istifadəçi tərəfindən icazə verilmiş istənilən istifadəçilərdən müəyyən icazəni ləğv edir.
Məsələn, aşağıdakı komanda əvvəlki nümunədə Joe üçün verilən icazəni ləğv edir:
Joe'dan HR.employees haqqında REVOKE SEÇİNVerilənlər bazasının açıq şəkildə inkar edilməsi
DENY əmri bir istifadəçinin müəyyən bir icazə almasını qarşısını almaq üçün istifadə olunur. Bir istifadəçi icazə verilən bir rol və ya qrupun üzvü olduqda və bu fərdi istifadəçinin bir istisna yaratmaqla icazəni devralmasını qarşısını almaq istədiyiniz zaman faydalıdır. Bu əmr üçün sintaksis aşağıdakılardır:
DENY [icazə] ON [obyekt] TO [istifadəçi] DENY əmrinin parametrləri GRANT əmri üçün istifadə olunanlarla eynidır.
Məsələn, Matthewun işçilərin cədvəlindən məlumatları silmə qabiliyyətini heç vaxt qəbul etməyini istəməyiniz üçün aşağıdakı əmrləri verin: