Təhlükəsizliyin, mühüm iş məlumatlarının gigabaytlarını icazəsiz kənarların və öz səlahiyyətlərini aşmağa çalışan insanın göz yaşı gözlərindən qorumaq istəyən verilənlər bazası idarəçiləri üçün çox əhəmiyyətlidir. Bütün əlaqəli verilənlər bazası idarəetmə sistemləri bu təhlükələri minimuma endirmək üçün nəzərdə tutulmuş bir sıra daxili təhlükəsizlik mexanizmlərini təmin edir. Oracle və Microsoft SQL Server kimi qabaqcıl əlaqəli verilənlər bazaları tərəfindən dəstəklənən kompleks istifadəçi / rol strukturuna Microsoft Access tərəfindən təklif olunan sadə parol qorunması üçündür. Bu məqalədə Strukturlaşdırılmış Sualı Dilini (və ya SQL ) həyata keçirən bütün verilənlər bazalarına aid olan təhlükəsizlik mexanizmlərinə diqqət yetirilir. Birlikdə, məlumatların əldə olunması nəzarətinin gücləndirilməsi və məlumatların təhlükəsizliyinin təmin edilməsi prosesindən keçəcəyik.
İstifadəçilər
Server əsaslı verilənlər bazaları bütün kompüter əməliyyat sistemlərində istifadə olunan istifadəçi anlayışını dəstəkləyir. Microsoft Windows NT və Windows 2000-də olan istifadəçi / qrup hiyerarşisi ilə tanışsınızsa, SQL Server və Oracle tərəfindən dəstəklənən istifadəçi / rol qruplarının çox oxşar olduğunu görəcəksiniz.
Verilənlər bazasına daxil olacağınız hər bir şəxs üçün fərdi verilənlər bazası istifadəçi hesabı yaratmaq məsləhət görülür. İstifadəçilər arasında hesabları bölüşmək və ya verilənlər bazasına daxil olmaq üçün lazım olan hər bir istifadəçi növü üçün bir istifadəçi hesabını istifadə etmək texniki cəhətdən mümkündür, amma bu praktikanı iki səbəbdən məhdudlaşdırıram. Birincisi, fərdi hesabatlılığı aradan qaldıracaq - əgər istifadəçi verilənlər bazasına dəyişiklik edərsə (məsələn, özünü $ 5,000 yüksəltməklə) audit jurnalının istifadəsi ilə müəyyən bir şəxsə geri qayıda bilməyəcəksiniz. Bundan əlavə, müəyyən bir istifadəçi təşkilatınızı tərk edərsə və onun verilənlər bazasından çıxışını aradan qaldırmaq istəyirsənsə, bütün istifadəçilərə güvənən şifrəni dəyişməyə məcbur olacaqsınız.
İstifadəçi hesabı yaratma üsulları platformadan platforma dəyişir və dəqiq əməliyyatlar üçün DBMS-ə dair sənədlərə müraciət etməlisiniz. Microsoft SQL Server istifadəçiləri sp_adduser saxlanılan prosedurun istifadəsini araşdırmalıdırlar. Oracle verilənlər bazası idarəçiləri CREATE USER komutunu faydalı tapacaqdır. Alternativ autentifikasiya sxemlərini də araşdırmaq istəyə bilərsiniz. Məsələn, Microsoft SQL Server, Windows NT Integrated Security istifadə dəstəkləyir. Bu sxem çərçivəsində istifadəçilər, Windows NT istifadəçi hesabları ilə verilənlər bazasında müəyyən edilir və verilənlər bazasına daxil olmaq üçün əlavə bir istifadəçi kimliyi və şifrəsini daxil etmək tələb olunmur. Bu yanaşma verilənlər bazası administratorları arasında son dərəcə populyardır, çünki hesab idarəçiliyinin yükünü şəbəkə idarəçiliyinə ötürür və son istifadəçiyə bir giriş açma asanlığı təmin edir.
Roles
Bir az sayda istifadəçiyə sahib bir mühitdə olsanız, ehtimal ki, istifadəçi hesabı yaratmaq və onlara birbaşa icazə vermək sizin ehtiyaclarınız üçün kifayətdir. Lakin, çox sayda istifadəçiniz varsa, ehtimal ki, hesabların saxlanması və lazımi icazələrin saxlanması yükü ilə üzləşəcəksiniz. Bu yükü asanlaşdırmaq üçün relsli məlumat bazaları rolların anlayışını dəstəkləyir. Verilənlər bazası rolları Windows NT qruplarına oxşar şəkildə işləyir. İstifadəçi hesabları rollara təyin edilmiş və icazələrin sonra fərdi istifadəçi hesablarından çox deyil, rolu təyin edilmişdir. Məsələn, biz bir DBA rolu yarada və sonra bu rol üçün inzibati işçilərimizin istifadəçi hesablarını əlavə edə bilərik. Bunu etdikdən sonra, sadəcə rolu üçün icazəni təyin etməklə bütün mövcud (və gələcək) administratorlara xüsusi icazə verə bilərik. Bir daha, rol yaratmaq üçün prosedurlar platformadan platformaya dəyişir. Oracle DBA'lar CREATE ROLE sözdizimini istifadə edərkən MS SQL Server administratorları sp_addrole saxlanılan proseduru araşdırmalıdır.
Rəqəmlər vermək
İndi bazamızı verilənlər bazasına əlavə etdik ki, icazələrin əlavə edilməsi ilə təhlükəsizliyin gücləndirilməsinə başlama vaxtı gəldi. İlk addım istifadəçilərə müvafiq verilənlər bazası icazələrini vermək olacaq. Bunu SQL GRANT ifadəsini istifadə etməklə həyata keçirəcəyik.
Bəyanatın sintaksisi:
GRANT İndi bu xətt-line-a nəzər salaq. Birinci xətt, GRANT İkinci satır, ON Nəhayət, dördüncü xətt, GRANT OPTION ilə, isteğe bağlıdır. Bu xətt bəyanata daxil edildikdə, təsirlənən istifadəçinin eyni icazələrin digər istifadəçilərə verilməsi də icazə verilir. İzinlərin rolu təyin edildikdə, GRANT OPTION İLƏ ilə qeyd edilə bilməz. Bir neçə nümunəyə baxaq. Bizim ilk ssenarimizdə yaxın vaxtlarda müştərilərin qeydlərini əlavə etmək və saxlayacaq 42 məlumat girişi operatoru qrupu işə saldıq. Onlar Müştərilər cədvəlində məlumat əldə edə, bu məlumatı dəyişə və cədvəldə yeni qeydlər əlavə etməlidirlər. Onlar bir verilənlər bazasından tamamilə silmək mümkün olmur. Birincisi, hər bir operator üçün istifadəçi hesabı yaratmalı və sonra hamısını DataEntry yeni bir rol əlavə etməlidir. Bundan sonra, onlara müvafiq icazələrin verilməsi üçün aşağıdakı SQL ifadəsini istifadə etməliyik: GRANT SEÇİN, SİSTEMİ, YENİLƏNİB Və bunun hamısı budur! İndi veritabanı səviyyəsində icazələrin atıldığımız bir vəziyyətə baxaq. DBA rolu üzvlərinə veritabanımıza yeni tablolar əlavə etməyə icazə vermək istəyirik. Bundan başqa, biz digər istifadəçilərə eyni şəkildə icazə verə bilmək istəyərik. Burada SQL ifadəsi: GRANT CREATE TABLE DBA'larımızın bu icazəni digər istifadəçilərə verə biləcəyini təmin etmək üçün GRANT OPTION xətti ilə daxil etdik. Təqdim edildikdən sonra, bir daha sonra onları ləğv etmək çox vaxt tələb olunur. Xoşbəxtlikdən, SQL əvvəllər verilən icazələrin aradan qaldırılması üçün REVOKE əmri ilə bizə təmin edir. İşdə sözdizimi: REVOKE [QEYDİYYAT VERİLMƏSİ] Bu komutun sintaksisinin GRANT komutuna oxşar olduğunu görəcəksiniz. Yalnız fərq fərqlidir ki, GRANT OPTION ilə REVOKE komanda xəttində deyil, komutun sonunda deyil. Bir misal olaraq, Müştərilərin məlumat bazasından qeydləri aradan qaldırmaq üçün Məryəmə daha əvvəl verilmiş icazəni ləğv etmək istəyirik. Aşağıdakı əmri istifadə edəcəyik: REVOKE DELETE Və bunun hamısı budur! Microsoft SQL Server tərəfindən dəstəklənən bir əlavə mexanizm var - sözügedən DENY əmri. Bu komanda bir istifadəçiyə başqa cari və ya gələcək rol üzvlüyünə sahib ola biləcək bir icazə vermək üçün istifadə edilə bilər. İşdə sözdizimi: DENY Əvvəlki nümunəyə dönsək, Məryəm də Müştərilərin cədvəlinə daxil olan Menecerlər rolunun üzvü olduğunu təsəvvür edək. Əvvəlki REVOKE bəyanatı masaya girişdən imtina etmək üçün kifayət deyil. Bu, istifadəçi hesabını hədəf alan bir GRANT hesabatı ilə ona verilən icazəni aradan qaldırmaqla, lakin onun İdarəçilər rolunda üzvlüyü ilə əldə edilmiş icazələri təsir etməyəcəkdir. Lakin, bir DENY bəyanatından istifadə edərsə, izni onun mirasını blok edəcək. İşdə əmr: DENY DELETE DENY əmri əsasən verilənlər bazasına giriş nəzarətində "mənfi icazə" yaradır. Daha sonra Müştərilər cədvəlində satırları silmək üçün Məryəmə icazə vermək istəsəniz, sadəcə GRANT əmrini istifadə edə bilmərik. Bu əmr dərhal mövcud DENY tərəfindən ləğv ediləcəkdir. Bunun əvəzinə, biz əvvəlcə mənfi icazə girişini aradan qaldırmaq üçün REVOKE əmrini istifadə edəcəyik: REVOKE DELETE Bu komandanın müsbət bir icazə çıxarmaq üçün istifadə etdiyi tam olaraq eyni olduğunu görəcəksiniz. DENY və GRANT əmrlərinin eyni şəkildə işlədiyini unutmayın * mdash; ikisi də verilənlər bazasına giriş nəzarəti mexanizmində icazələrin (müsbət və ya mənfi) yaradır. REVOKE əmri, müəyyən istifadəçi üçün bütün müsbət və mənfi icazələri aradan qaldırır. Bu əmr verildikdən sonra, Məryəm icazə verən bir rolun üzvü olduqda, sətirləri sətirdən silə bilər. Alternativ olaraq, DELETE icazəsini birbaşa hesabına təmin etmək üçün bir GRANT əmri verilə bilər. Bu məqalənin gedişində, Standart Sorgulama Dili tərəfindən dəstəklənən giriş nəzarət mexanizmləri haqqında yaxşı bir şey öyrəndiniz. Bu giriş sizi yaxşı bir başlanğıc nöqtəsi ilə təmin etməlidir, amma sisteminiz tərəfindən dəstəklənən təhlükəsizlik tədbirlərini öyrənmək üçün DBMS sənədlərinizə istinad etməyə təşviq edirəm. Bir çox verilənlər bazasının xüsusi sütunlara icazə verilməsi kimi daha inkişaf etmiş giriş nəzarət mexanizmlərini dəstəklədiklərini görəcəksiniz.
[ON ]
[GRANT OPTION ilə]
, masa səviyyəli icazələrin təsirlənmiş cədvəlini təyin etmək üçün istifadə olunur. Veritabanı səviyyəsində icazələrin verilməsi halında bu xətt çəkilmir. Üçüncü xətt, icazə verilən istifadəçi və ya rolu müəyyənləşdirir.
Nümunələr
Müştərilər haqqında
DataEntry'ye
DBA'ya
İSTİFADƏ İzinlərin çıxarılması
ON
Müştərilər haqqında
Məryəmdən
ON
Nümunələr
Müştərilər haqqında
Məryəmə
Müştərilər haqqında
Məryəmdən