Vartotojų ir SQL vaidmenų prieigos valdikliai

Visi santykiniai duomenų bazių valdymo sistemos pateikti tam tikrus vidinius saugumo mechanizmus, sukurtus siekiant sumažinti duomenų praradimo, duomenų sugadinimo ar vagystės grėsmes. Jie svyruoja nuo paprastos slaptažodžio apsaugos, kurią siūlo „Microsoft Access“ į sudėtingą vartotojo / vaidmens struktūrą, palaikomą pažangių reliacinių duomenų bazių, tokių kaip „Oracle“ ir„Microsoft SQL“ Serveris. Kai kurie saugumo mechanizmai yra bendri visoms duomenų bazėms, kurios įdiegiaStruktūruota užklausų kalba.

Vartotojo lygio sauga

Serverio duomenų bazės palaiko a Vartotojas koncepcija, panaši į naudojamą kompiuterių operacinėse sistemose. Jei esate susipažinęs su naudotojo / grupės hierarchija, esančia „Microsoft Windows“ NT ir „Windows 2000“ pastebėsite, kad „SQL Server“ ir „Oracle“ palaikomos vartotojų / vaidmenų grupės yra panašios.

Sukurkite individualias duomenų bazės vartotojo abonementus kiekvienam asmeniui, turinčiam prieigą prie jūsų duomenų bazės.

Venkite kurti bendrąsias paskyras, prieinamas keliems skirtingiems žmonėms. Pirma, ši praktika pašalina individualią atskaitomybę - jei vartotojas pakeičia jūsų duomenų bazę (tarkime pagal suteikdamas sau 5000 USD pakėlimą), negalėsite atsekti to konkretaus asmens naudodamiesi auditu rąstai. Antra, jei konkretus vartotojas palieka jūsų organizaciją ir norite pašalinti jo ar jos prieigą iš duomenų bazės, turite pakeisti slaptažodį, kuriuo pasitiki visi vartotojai.

instagram viewer

Interneto kūrėjas
OstapenkoOlena/ „Getty Images“

Vartotojų abonementų kūrimo metodai įvairiose platformose skiriasi, todėl tikslią procedūrą turėsite sužinoti savo DBVS dokumentuose. Microsoft SQL Server vartotojai turėtų ištirti, kaip naudoti sp_adduser saugoma procedūra. „Oracle“ duomenų bazių administratoriai ras SUKURTI VARTOTOJĄ komanda naudinga. Taip pat galbūt norėsite ištirti alternatyvias autentifikavimo schemas. Pavyzdžiui, „Microsoft SQL Server“ palaiko „Windows NT“ integruoto saugumo naudojimą. Pagal šią schemą vartotojai yra identifikuojami duomenų bazėje pagal jų „Windows NT“ vartotojų abonementus ir jiems nereikia įvesti papildomo vartotojo ID ir slaptažodžio, norint pasiekti duomenų bazę. Šis požiūris yra populiarus tarp duomenų bazių administratorių, nes perkelia sąskaitų naštą valdymą tinklo administracijos darbuotojams ir tai leidžia lengvai prisijungti prie galutinis vartotojas.

Vaidmenų lygio apsauga

Jei esate aplinkoje, kurioje yra nedaug vartotojų, tikriausiai pastebėsite, kad jūsų poreikiams pakanka sukurti vartotojo abonementus ir tiesiogiai jiems priskirti leidimus. Tačiau jei turite daug vartotojų, būsite priblokšti tvarkydami paskyras ir tinkamus leidimus. Siekiant palengvinti šią naštą, palaikomos reliacinės duomenų bazės vaidmenys. Duomenų bazės vaidmenys veikia panašiai kaip „Windows NT“ grupės. Vartotojo abonementai priskiriami vaidmeniui (-iams), o leidimai paskiriami visam vaidmeniui, o ne atskiroms vartotojų abonementams. Pavyzdžiui, galite sukurti DBA vaidmenį ir prie šio vaidmens pridėti savo administracijos darbuotojų vartotojo abonementus. Po to galite priskirti konkretų leidimą visiems esamiems (ir būsimiems) administratoriams, tiesiog priskirdami leidimą vaidmeniui. Vėlgi, vaidmenų kūrimo procedūros skirtingose ​​platformose skiriasi. MS SQL Server administratoriai turėtų ištirti sp_addrole saugoma procedūra, o „Oracle“ DBA turėtų naudoti SUKURTI VAIDMUO sintaksė.

Leidimų suteikimas

Dabar, kai įtraukėme vartotojus į savo duomenų bazę, atėjo laikas pradėti stiprinti saugumą pridedant leidimus. Pirmas žingsnis bus suteikti tinkamus duomenų bazių leidimus savo vartotojams. Tai atliksime naudodami SQL GRANT sakinį.

Štai teiginio sintaksė:

GRANTAS. 
[ON. 
Į. 
[SU DOTACIJOS PASIRINKIMU]

Dabar pažvelkime į šį teiginį eilutėmis. Pirmoji eilutė GRANTAS , leidžia mums nurodyti konkrečius leidimus, kuriuos suteikiame. Tai gali būti lentelės lygio leidimai (pvz., „SELECT“, „INSERT“, „UPDATE“ ir „DELETE“) arba duomenų bazės leidimai (pvz., „CREATE TABLE“, „ALTER DATABASE“ ir „GRANT“). Viename GRANT sakinyje galima suteikti daugiau nei vieną leidimą, tačiau lentelės lygio ir duomenų bazės lygio leidimai negali būti sujungti viename sakinyje.

Antroji eilutė, ĮJUNGTA

Galiausiai ketvirta eilutė SU DOTACIJOS PASIRINKIMU, yra neprivaloma. Jei ši eilutė yra įtraukta į teiginį, nukentėjusiam vartotojui taip pat leidžiama suteikti tuos pačius leidimus kitiems vartotojams. Atminkite, kad WITH GRANT OPTION negalima nurodyti, kai leidimai priskiriami vaidmeniui.

Duomenų bazės dotacijų pavyzdys

Pažvelkime į keletą pavyzdžių. Pagal savo pirmąjį scenarijų neseniai pasamdėme 42 duomenų įvedimo operatorių grupę, kuri pridės ir tvarkys klientų įrašus. Jie turi pasiekti lentelėje „Klientai“ esančią informaciją, modifikuoti šią informaciją ir įtraukti į lentelę naujus įrašus. Jie neturėtų turėti galimybės visiškai ištrinti įrašo iš duomenų bazės.

Pirmiausia turėtume sukurti vartotojo abonementus kiekvienam operatoriui ir tada juos visus pridėti prie naujo vaidmens, Duomenų įrašas. Tada turėtume naudoti šį SQL sakinį, kad suteiktume jiems tinkamas teises:

SUTEIKITE PASIRINKTI, ĮDĖTI, ATNAUJINTI. 
ON klientai. 
Į „DataEntry“. 

Dabar panagrinėkime atvejį, kai priskiriame duomenų bazės lygio teises. Norime leisti DBA vaidmens nariams į mūsų duomenų bazę įtraukti naujas lenteles. Be to, mes norime, kad jie galėtų suteikti kitiems vartotojams leidimą tai padaryti. Štai SQL sakinys:

DOTACIJOS SUKŪRIMO LENTELĖ. 
Į DBA. 
SU DOTACIJOS PASIRINKIMU. 

Atkreipkite dėmesį, kad mes įtraukėme WITH GRANT OPTION eilutę, kad mūsų DBA galėtų priskirti šį leidimą kitiems vartotojams.

Pašalinami leidimai

SQL apima komandą REVOKE, kad pašalintų anksčiau suteiktus leidimus. Štai sintaksė:

ATŠAUKTI [DOTACIJOS GALIMYBĖ]
ĮJUNGTA. 
NUO. 

Pastebėsite, kad šios komandos sintaksė yra panaši į GRANT komandos sintaksę. Vienintelis skirtumas yra tas, kad WITH GRANT OPTION nurodoma komandoje REVOKE, o ne komandos pabaigoje. Įsivaizduokime, kad norime anuliuoti anksčiau suteiktą Marijos leidimą pašalinti įrašus iš klientų duomenų bazės. Naudosime šią komandą:

ATŠAUKTI IŠTRINTI. 
ON klientai. 
IŠ Marijos. 

Verta paminėti vieną papildomą „Microsoft SQL Server“ palaikomą mechanizmą - komandą DENY. Ši komanda gali būti naudojama norint aiškiai atmesti leidimą vartotojui, kurį jis galbūt turėtų turėdamas dabartinę ar būsimą vaidmens narystę. Štai sintaksė:

DENY. 
ĮJUNGTA. 
Į.