Riadenie prístupu pre používateľov a úlohy v SQL

Všetky vzťahové systémy na správu databáz poskytujú určitý druh vnútorných bezpečnostných mechanizmov určených na minimalizáciu hrozieb straty údajov, ich poškodenia alebo krádeže. Siahajú od jednoduchej ochrany heslom, ktorú ponúka Microsoft Access na zložitú štruktúru používateľa / role podporovanú pokročilými relačnými databázami, ako je Oracle aMicrosoft SQL Server. Niektoré bezpečnostné mechanizmy sú spoločné pre všetky databázy, ktoré implementujúŠtruktúrovaný Dopytovací Jazyk.

Zabezpečenie na úrovni používateľa

Serverové databázy podporujú a používateľ koncepcia podobná koncepcii používanej v počítačových operačných systémoch. Ak ste oboznámení s hierarchiou používateľov / skupín, ktorá sa nachádza v Microsoft Windows NT a Windows 2000 zistíte, že zoskupenia používateľov a rolí podporované servermi SQL Server a Oracle sú podobné.

Vytvorte individuálne užívateľské účty databázy pre každú osobu s prístupom do vašej databázy.

Vyvarujte sa poskytovaniu všeobecných účtov, ku ktorým má prístup niekoľko rôznych ľudí. Po prvé, tento postup eliminuje individuálnu zodpovednosť - ak používateľ urobí zmenu vo vašej databáze (povedzme tým ($ 5 000), nebudete ho môcť pomocou auditu vysledovať späť ku konkrétnej osobe guľatiny. Po druhé, ak konkrétny používateľ opustí vašu organizáciu a chcete mu odobrať prístup z databázy, musíte zmeniť heslo, na ktoré sa všetci používatelia spoliehajú.

instagram viewer

Webový vývojár
OstapenkoOlena/ Getty Images

Metódy vytvárania používateľských účtov sa líšia od platformy k platforme a presný postup nájdete v dokumentácii špecifickej pre DBMS. Používatelia servera Microsoft SQL Server by mali preskúmať použitie servera sp_adduser uložená procedúra. Správcovia databáz Oracle nájdu server VYTVORIŤ UŽÍVATEĽA príkaz užitočný. Možno budete tiež chcieť preskúmať alternatívne schémy autentifikácie. Napríklad Microsoft SQL Server podporuje použitie integrovaného zabezpečenia Windows NT. V rámci tejto schémy sú používatelia identifikovaní v databáze podľa svojich používateľských účtov systému Windows NT a nie je od nich požadované, aby zadali ďalšie ID používateľa a heslo na prístup do databázy. Tento prístup je obľúbený medzi administrátormi databáz, pretože prenáša zaťaženie účtov správu zamestnancom správy siete a poskytuje jednoduché jednotné prihlásenie do siete koncový užívateľ.

Zabezpečenie na úrovni rolí

Ak sa nachádzate v prostredí s malým počtom používateľov, pravdepodobne zistíte, že vytváranie používateľských účtov a priame priradenie povolení im postačuje pre vaše potreby. Ak však máte veľký počet používateľov, budete ohromení udržiavaním účtov a správnymi povoleniami. Na uľahčenie tejto záťaže sú podporované relačné databázy role. Roly databázy fungujú podobne ako skupiny Windows NT. Používateľské účty sú priradené k rolám a povolenia sú potom priradené k role ako celku, a nie jednotlivým používateľským účtom. Môžete napríklad vytvoriť rolu DBA a potom do tejto role pridať používateľské účty svojich administratívnych pracovníkov. Potom môžete prideliť konkrétne povolenie všetkým súčasným (aj budúcim) správcom jednoduchým priradením povolenia k role. Postupy pri vytváraní rolí sa opäť líšia od platformy k platforme. Správcovia servera MS SQL Server by mali preskúmať sp_addrole uložená procedúra, zatiaľ čo Oracle DBA by mali používať VYTVORIŤ ÚLOHU syntax.

Udeľovanie povolení

Teraz, keď sme do našej databázy pridali používateľov, je čas začať posilňovať bezpečnosť pridávaním povolení. Naším prvým krokom bude udelenie vhodných povolení k databáze našim používateľom. Dosiahneme to pomocou príkazu SQL GRANT.

Tu je syntax príkazu:

GRANT. 
[ZAPNUTÉ. 
TO. 
[S MOŽNOSŤOU GRANTU]

Poďme sa teraz pozrieť na toto vyhlásenie riadok po riadku. Prvý riadok, GRANT , nám umožňuje určiť konkrétne povolenia tabuľky, ktoré udeľujeme. Môžu to byť buď povolenia na úrovni tabuľky (napríklad SELECT, INSERT, UPDATE a DELETE) alebo databázové povolenia (napríklad CREATE TABLE, ALTER DATABASE a GRANT). V jednom príkaze GRANT možno udeliť viac ako jedno povolenie, ale povolenia na úrovni tabuľky a povolenia na úrovni databázy sa nemôžu kombinovať v jednom príkaze.

Druhý riadok, ZAP

Nakoniec štvrtý riadok S GRANTOVOU MOŽNOSŤOU, je voliteľné. Ak je tento riadok uvedený vo vyhlásení, dotknutý používateľ má tiež oprávnenie udeliť rovnaké povolenia ďalším používateľom. Upozorňujeme, že voľbu S GRANTOVOU MOŽNOSŤOU nie je možné určiť, keď sú oprávneniu pridelené roly.

Príklady databázových grantov

Pozrime sa na niekoľko príkladov. V našom prvom scenári sme nedávno prijali skupinu 42 operátorov zadávania údajov, ktorí budú pridávať a udržiavať záznamy o zákazníkoch. Musia pristupovať k informáciám v tabuľke Zákazníci, upravovať ich a pridávať do tabuľky nové záznamy. Nemali by byť schopní úplne vymazať záznam z databázy.

Najprv by sme mali vytvoriť používateľské účty pre každého operátora a potom ich všetky pridať do novej role, Vkladanie dát. Ďalej by sme mali použiť nasledujúci príkaz SQL, aby sme im udelili príslušné povolenia:

GRANTOVAŤ VÝBER, VLOŽIŤ, AKTUALIZOVAŤ. 
ON Zákazníci. 
DO DataEntry. 

Teraz sa pozrime na prípad, keď priraďujeme povolenia na úrovni databázy. Chceme umožniť členom role DBA pridávať nové tabuľky do našej databázy. Ďalej od nich požadujeme, aby mohli ďalším používateľom udeliť povolenie, aby mohli robiť to isté. Tu je príkaz SQL:

TABUĽKA VYTVORENIA GRANTOV. 
DO DBA. 
S GRANTOVOU MOŽNOSŤOU. 

Všimnite si, že sme zahrnuli riadok S GRANTOVOU MOŽNOSŤOU, aby sme zabezpečili, že naši správcovia databáz môžu toto povolenie prideliť iným používateľom.

Odstraňujú sa povolenia

SQL obsahuje príkaz REVOKE na odstránenie predtým udelených povolení. Tu je syntax:

ODVOZIŤ [VOĽBA GRANTU PRE]
ZAP. 
ZO. 

Všimnete si, že syntax tohto príkazu je podobná syntaxe príkazu GRANT. Jediný rozdiel je v tom, že WITH GRANT OPTION je zadaný skôr v príkazovom riadku REVOKE, než na konci príkazu. Ako príklad si predstavme, že chceme odvolať predtým udelené povolenie Mary na odstraňovanie záznamov z databázy zákazníkov. Použili by sme nasledujúci príkaz:

ODSTRÁNIŤ ODSTRÁNENIE. 
ON Zákazníci. 
Z Márie. 

Microsoft SQL Server podporuje ešte jeden mechanizmus, ktorý stojí za zmienku - príkaz DENY. Tento príkaz možno použiť na výslovné odopretie povolenia používateľovi, ktoré by inak mohol mať prostredníctvom súčasného alebo budúceho členstva v role. Tu je syntax:

DENY. 
ZAP. 
TO.