SQL-də imtiyazlar və rollar

1. İmtiyaz nədir?

Tutaq ki, verilənlər bazasında İŞÇİLƏR cədvəli yaratdıq. İndi bu cədvəllərə kim baxa bilər və ya daxil ola bilər? Kimin yaratdığından başqa heç kim yoxdur! Verilənlər bazasına, bu cədvələ kimin baxa biləcəyini və digər istifadəçilərə oxumaq, yazmaq, silmək kimi bir giriş növünün verilməsini açıq şəkildə izah etməliyik.

Eynilə, bu cədvələ daxil olan bəzi istifadəçilər təşkilatı tərk etdilər. Ancaq yenə də bu cədvələ daxil ola bilərlər, bu qəbuledilməzdir. Buna görə də onların bu cür girişlərini aradan qaldırmalıyıq masaları və verilənlər bazası.

2. SQL Grant ifadəsi nədir və istifadəçilərə imtiyazlar / icazələr təyin etmək üçün necə istifadə olunur?

Bu verilənlər bazası obyektlərindəki istifadəçilərə imtiyazlar verir. İmtiyazlar seçmək, silmək, yeniləmək və masalara və görünüşlərə əlavə etmək ola bilər. Prosedurlarda, funksiyalarda və paketlərdə imtiyazları seçin və həyata keçirir. Bütün imtiyazları və ya hər hansı bir və ya daha çox imtiyazı obyektlərə verə bilərik. GRANT sintaksisi aşağıdakı kimidir:

GRANT privilege_name 
ON object_name 
TO {user_name |PUBLIC |role_name} 
[WITH GRANT OPTION | WITH ADMIN OPTION];

  •  Privilege_name istifadəçilərə verilən giriş səviyyəsidir. Giriş hüquqlarından bəziləri BÜTÜN, SİL, YENİLƏN, TƏSVİR EDİN, İCRA EDİN və SEÇİN.
  • Object_name, CƏDVƏL, GÖRÜNMƏ, PROSEDUR, FUNKSİYA, PAKET və SIRA kimi bir verilənlər bazası obyektinin adıdır.
  • İstifadəçi_adı, girişin verildiyi istifadəçinin adıdır.
  • PUBLIC bütün istifadəçilərə giriş hüquqları vermək üçün istifadə olunur.
  • ROLES birlikdə qruplaşdırılmış bir sıra imtiyazlardır.

 

  • GRANT VERİLMƏSİ İLƏ / ADMİN SEÇMƏSİ İLƏ - istifadəçinin digər istifadəçilərə giriş hüququ verməsinə imkan verir. yəni; ümumiyyətlə qrantlar verilənlər bazası obyektlərini yaratmış istifadəçi tərəfindən verilir. Ancaq bu seçimlə, giriş hüququ olan istifadəçilər qrantlar da verə və digər cədvəllərə / baxışlara daxil ola bilərlər.

GRANT SELECT, INSERT ON EMPLOYEES TO Bryan;

Burada SEÇİN və INSERT qrantları İŞÇİLƏR masasında Bryan-a verilir.
GRANT EXECUTE on sp_Example to Ryan;

Bu qrant, Ryan'a saxlanılan pr_Example prosedurunda icra hüquqlarını verir.

3. SQL REVOKE ifadəsi nədir? Bu necə işləyir?

Verilənlər bazası obyektlərində verilən imtiyazları aradan qaldırır. Bütün imtiyazları silə və ya obyektlərdən bir və ya daha çox imtiyazları silə bilərik.

REVOKE privilege_name
ON object_name
FROM {user_name |PUBLIC |role_name}

REVOKE INSERT ON EMPLOYEES FROM Ryan; -- Removes the INSERT grant from Ryan on EMPLOYEES Table

Burada işçilər cədvəlindəki bütün qrantları silmədiyimizi görə bilərik. Yəni ləğv etmək ya masadakı bütün qrantları silə bilər, ya da yalnız qismən qrantları silə bilər. Eyni şəkildə rollar və qrup siyahısı da qismən silinə bilər.

4. CREATE USER Statement SQL-də nə edir? Sintaksis və digər detallar nədir?

Verilənlər bazası istifadəçiləri yaratmaq üçün istifadə olunur - verilənlər bazası məlumatlarına daxil ola və onu idarə edə bilən istifadəçilər CREATE USER bəyanatından istifadə edərək yaradılır. İndiki vaxtda verilənlər bazasını yaratdığımız zaman istifadəçi interfeysi təmin edir. Ancaq verilənlər bazasını yaratdıqdan sonra yeni bir istifadəçi yaratmalıyıqsa, bu ifadəni verə bilərik.

CREATE USER user_name
[IDENTIFIED BY password]
[other options];

Cari verilənlər bazasında user_name və şifrə ilə bir istifadəçi yaradır.
CREATE USER HR_USER
[IDENTIFIED BY hr_pwd];

HR_USER ilə istifadəçi yaradıldı. HR_USER adı olan istifadəçi hr_pwd parolu ilə daxil ola bilər. İstifadəçi yaratmaq üçün istifadəçi və ya verilənlər bazası imtiyazına sahib olmalıdır, əks halda "SQL Error: ORA-01031: yetərli imtiyazlar" səhvini atacaqdır.

5. Sistem və obyekt imtiyazları arasındakı fərq nədir?

Sistem imtiyazı: Sistem imtiyazı, istifadəçilərə başqa bir istifadəçi və ya cədvəl yaratmaq, görüntüləmək və ya hətta sessiyalar keçirmək üçün imtiyazların verildiyi imtiyazdır. Bu verilənlər bazası və onun server imtiyazları üçün istifadə olunur.

  • İSTİFADƏÇİ YARADIN - bu cari istifadəçiyə cari verilənlər bazasında başqa bir istifadəçi yaratmaq imtiyazı verəcəkdir. Bu icazə olmadıqca, hər hansı bir istifadəçi başqa bir istifadəçi yarada bilməz.
  • CƏDVƏL YARAT - bu verilənlər bazası istifadəçisinə verilənlər bazasında cədvəllər yaratmağa imkan verəcəkdir. Əks halda, istifadəçi heç bir cədvəl yarada bilməyəcək.
  • SESSİYA YARADIN - bu imtiyaz verilənlər bazası istifadəçisinin verilənlər bazasına qoşulmasına imkan verəcəkdir.

Məqsəd imtiyazı: bu, verilənlər bazası obyektlərində müəyyən əməliyyatı həyata keçirə biləcək istifadəçilərə verilən imtiyazdır. Məsələn, bir istifadəçinin hər hansı bir cədvəldən və ya görünüşdən qeydlər əlavə etməsi, silməsi, yeniləməsi və ya seçməsi üçün həmin istifadəçi həmin cədvəldə və ya görünüşdə onsuz da imtiyazlı olmalıdır. Bu, SQL-də GRANT ifadəsindən istifadə etməklə həyata keçirilir. Cədvəllər, baxışlar, saxlanılan prosedur, funksiyalar və paketlər kimi verilənlər bazası obyektlərində imtiyazlar təmin etmək üçün istifadə olunur.

“SQL-də imtiyazlar və rollar” haqqında 1 fikir

Şərh yaz

Translate »