Nadzor dostopa za uporabnike in vloge v SQL

click fraud protection

Vse relacijske sistemi za upravljanje baz podatkov zagotoviti nekakšne notranje zaščitne mehanizme, namenjene zmanjševanju groženj izgube podatkov, korupcije ali kraje podatkov. Segajo od preproste zaščite z geslom, ki jo ponuja Microsoft Access do zapletene strukture uporabnik / vloga, ki jo podpirajo napredne relacijske baze podatkov, kot je Oracle inMicrosoft SQL Strežnik. Nekateri varnostni mehanizmi so skupni vsem bazam podatkov, ki izvajajoStrukturirani povpraševalni jezik za delo s podatkovnimi bazami.

Varnost na ravni uporabnika

Strežniške zbirke podatkov podpirajo a uporabnik koncept, podoben tistemu, ki se uporablja v računalniških operacijskih sistemih. Če poznate hierarhijo uporabnikov / skupin v Microsoft Windows NT in Windows 2000 boste ugotovili, da so skupine uporabnikov / vlog, ki jih podpirata SQL Server in Oracle, podobne.

Ustvarite posamezne uporabniške račune baze podatkov za vsako osebo z dostopom do vaše baze podatkov.

Izogibajte se zagotavljanju generičnih računov, do katerih lahko dostopa več različnih ljudi. Prvič, ta praksa odpravlja individualno odgovornost - če uporabnik spremeni vašo bazo podatkov (recimo do z dvigom 5000 USD), z revizijo ne boste mogli izslediti določene osebe dnevniki. Drugič, če določen uporabnik zapusti vašo organizacijo in želite njegov dostop odstraniti iz baze podatkov, morate spremeniti geslo, na katero se zanašajo vsi uporabniki.

instagram viewer

Spletni razvijalec
OstapenkoOlena/ Getty Images

Metode za ustvarjanje uporabniških računov se razlikujejo od platforme do platforme, zato se boste morali natančno seznaniti s svojo dokumentacijo DBMS. Uporabniki Microsoft SQL Server bi morali raziskati uporabo sp_adduser shranjeni postopek. Oracle skrbniki zbirke podatkov bodo našli USTVARI UPORABNIKA ukaz uporaben. Morda boste želeli raziskati tudi alternativne sheme za preverjanje pristnosti. Microsoft SQL Server na primer podpira uporabo integrirane varnosti Windows NT. Po tej shemi uporabnike v zbirko podatkov identificirajo njihovi uporabniški računi Windows NT in jim ni treba vnesti dodatnega ID-ja uporabnika in gesla za dostop do baze podatkov. Ta pristop je priljubljen med skrbniki baz podatkov, ker prelaga breme računa upravljanje osebju omrežne administracije in omogoča enostavno enotno prijavo na končni uporabnik.

Varnost na ravni vloge

Če ste v okolju z majhnim številom uporabnikov, boste verjetno ugotovili, da ustvarjanje uporabniških računov in dodeljevanje dovoljenj neposredno njim zadostuje za vaše potrebe. Če pa imate veliko število uporabnikov, vas bo nadvladalo vzdrževanje računov in ustrezna dovoljenja. Da bi olajšali to breme, podpirajo relacijske zbirke podatkov vloge. Vloge zbirke podatkov delujejo podobno kot skupine Windows NT. Uporabniški računi se dodelijo vlogam in dovoljenja se nato dodelijo vlogi kot celoti in ne posameznim uporabniškim računom. Na primer, lahko ustvarite vlogo DBA in ji nato dodate uporabniške račune skrbniškega osebja. Po tem lahko dodelite posebno dovoljenje vsem sedanjim (in bodočim) skrbnikom, tako da preprosto dodelite dovoljenje vlogi. Ponovno se postopki za ustvarjanje vlog razlikujejo od platforme do platforme. Skrbniki MS SQL Server bi morali raziskati sp_addrole shranjeni postopek, medtem ko bi morali Oracle DBA uporabljati USTVARI VLOGO skladnja.

Podelitev dovoljenj

Zdaj, ko smo v našo bazo podatkov dodali uporabnike, je čas, da začnemo krepiti varnost z dodajanjem dovoljenj. Naš prvi korak bo, da uporabnikom damo ustrezna dovoljenja za zbirko podatkov. To bomo dosegli z uporabo stavka SQL GRANT.

Tu je sintaksa stavka:

DODELITE. 
[VKLOPLJENO. 
TO. 
[Z DODELJENO MOŽNO]

Zdaj pa si oglejmo to izjavo po vrsticah. Prva vrstica, DODELITE , nam omogoča, da določimo posebna dovoljenja tabele, ki jih podeljujemo. To so lahko bodisi dovoljenja na ravni tabele (na primer IZBIRA, VSTAVITEV, NADGRADNJA in IZBRIŠI) bodisi dovoljenja za zbirko podatkov (kot so USTVARI TABELO, ALTER DATABASO in GRANT). V enem stavku GRANT je mogoče podeliti več dovoljenj, vendar dovoljenj na ravni tabele in dovoljenj na ravni baze podatkov ni mogoče združiti v enem stavku.

Druga vrstica, VKLOPLJENO

Končno, četrta vrstica, Z DODELJENO MOŽNOSTJO, ni obvezen. Če je ta vrstica vključena v stavek, lahko prizadeti uporabnik podeli ta ista dovoljenja tudi drugim uporabnikom. Upoštevajte, da možnosti WITH GRANT OPTION ni mogoče določiti, ko so vlogi dodeljena dovoljenja.

Primeri nepovratnih sredstev za zbirko podatkov

Oglejmo si nekaj primerov. V našem prvem scenariju smo pred kratkim najeli skupino 42 operaterjev za vnos podatkov, ki bodo dodajali in vodili evidence strank. Dostopiti morajo do informacij v tabeli Stranke, jih spremeniti in dodati nove zapise v tabelo. Ne smejo biti sposobni v celoti izbrisati zapisa iz baze podatkov.

Najprej bi morali ustvariti uporabniške račune za vsakega operaterja in jih nato dodati v novo vlogo, Vnos podatkov. Nato bi morali uporabiti naslednji stavek SQL, da jim dodelimo ustrezna dovoljenja:

DODELI IZBIRO, VSTAVITEV, OBNAVANJE 
ON Stranke. 
TO DataEntry. 

Zdaj pa preučimo primer, ko dodeljujemo dovoljenja na ravni baze podatkov. Članom vloge DBA želimo omogočiti dodajanje novih tabel v našo bazo podatkov. Poleg tega želimo, da lahko drugim uporabnikom dovolijo, da storijo enako. Tu je izjava SQL:

GRANT CREATE TABLE. 
DO DBA. 
Z DOVOLJENO MOŽNOSTJO. 

Upoštevajte, da smo vključili vrstico WITH GRANT OPTION, da zagotovimo, da lahko naši DBA to dovoljenje dodelijo drugim uporabnikom.

Odstranjevanje dovoljenj

SQL vključuje ukaz REVOKE za odstranjevanje predhodno dodeljenih dovoljenj. Tu je sintaksa:

ODPOVED [DODELITEV MOŽNOSTI ZA]
VKLOPLJENO. 
OD. 

Opazili boste, da je sintaksa tega ukaza podobna sintaksi ukaza GRANT. Edina razlika je v tem, da je z GRANT OPTION podana v ukazni vrstici REVOKE in ne na koncu ukaza. Kot primer si predstavljajmo, da želimo preklicati Mary-jevo predhodno dovoljenje za odstranjevanje zapisov iz baze strank. Uporabili bi naslednji ukaz:

PREKLICI IZBRIS. 
ON Stranke. 
OD Marije. 

Omeniti velja še en mehanizem, ki ga podpira Microsoft SQL Server - ukaz DENY. Ta ukaz lahko uporabimo za izrecno zavrnitev dovoljenja uporabniku, ki bi ga sicer imel prek trenutnega ali prihodnjega članstva v vlogi. Tu je sintaksa:

ZANIKATI. 
VKLOPLJENO. 
TO. 
instagram story viewer