Zabezpecenie databazy MySQL 01

01.03.2003 12:41 | blackhole

Zabezpecenie je neodmyslitelnou sucastou kazdej databazy. A to nielen pred utocnikmi zvonku, ale aj utocnikmi zvnutra uzivatelmi. A prave uzivatelia su ti, ktori casto robia najvacsiu sarapatu svojim nizsim povedomim a tak nechtiac mozu skodit. Je teda nutne nejakym jednoduchym sposobom takymto situaciam predchadzat.

Sposoby zaclenenia zabezpecenia do MySQL
Sposoby zabezpecenia su skutocne rozsiahle, takze kazdy by si mal vybrat. Rozhodnutie zavisi len od Vasich schopnosti, moznosti a zelani.

Samozrejme, ako v kazdom odbore, rieseni je niekolko. Osobne nepovazujem ani jeden sam osebe za absolutne dostacujuci a tak optimum je az vysledkom kombinacie viacerych moznosti. V nasledujucich riadkoch sa teda pojednava o tom snad najjednoduchsom, mozno aj primitivnom rieseni.

Vsetky opravnenia pre pracu s databazou MySQL su ulozene v osobitnej databaze
mysql. Tato databaza je utvarana automaticky pri instalacii a mozno ju povazovat za subor uzivatelskych uctov. Jedinou osobou, ktora by mala mat pristup k tejto databaze, by mal byt spravca. Databaza mysql obsahuje nasledujuce tabulky:

+ user
+ db
+ host
+ func
+ columns_priv
+ tables_priv.

Na tieto tabulky mozeme samozrejme posielat dopyty ako na vsetky ostatne a vhodne je si pracu zjednodusit povedzme prostrednictvom PHP.

Tabulka user
Tabulka user obsahuje vsetky opravnenia tykajuce sa prace s datami. V tejto tabulke sa nastavuju opravnenia uzivatelov a sklada sa z nasledujucich poli:

+ Host. Toto pole obsahuje nazov hostitelskeho pocitaca. V MySQL mozeme autorizaciu uzivatela obmedzit aj na konkretny pocitac, z ktoreho sa dany uzivatel moze k systemu pripojit. Urcite Vas v spojitosti s tymto polom napadla povedzme moznost autorizacie v podnikovom prostredi, kedy mozete dvojici uzivatel ? pocitac pridelit urcite pravomoci (teda aspon byva zvykom, ze uzivatel ma svoj pocitac).
+ User. Uzivatelske meno, ktore uzivatel pouziva pri autorizacii pristupu

k databazovemu serveru.
+ Password. Heslo uzivatela.
+ Select_priv. Dovoluje uzivatelovi spustat vyberove dopyty.
+ Insert_priv. Dovoluje uzivatelovi spustat vkladacie dopyty.
+ Update_priv. Dovoluje uzivatelovi aktualizovat existujuce data pomocou aktualizacnych dopytov.
+ Delete_priv. Dovoluje uzivatelovi odstranovat z databazy existujuce
zaznamy pomocou odstranovacich dopytov.
+ Create_priv. Umoznuje uzivatelovi vytvarat na databazovom serveri nove databazy a tabulky.
+ Drop_priv. Umoznuje uzivatelovi odstranovat z databazoveho serveru databazy a tabulky.
+ Reload_priv. Umoznuje uzivatelovi aktualizovat tabulky uzivatelskych uctov prikazom FLUSH PRIVILEGES.
+ Shutdown_priv. Umoznuje uzivatelovi vypnut databazovy server.
+ Process_priv. Dovoluje uzivatelovi sledovat spracovanie poziadaviek na serveri prikazom SHOW PROCESSLIST. Uzivatelia s tymto privilegiom mozu jednotlive procesy taktiez odstranovat.
+ File_priv. Umoznuje uzivatelovi citat subory na databazovom serveri alebo do nich lubovolne zapisovat. Pred udelenim tohto privilegia je nutne zamysliet sa nad jeho potrebou, nakolko by mohol uzivatel sarapatit v systeme.
+ Grant_priv. Uzivatelia s tymto privilegiom mozu udelovat privilegia inym uzivatelom. Ako je uz zrejme jasne, tato vysada by mala byt vlastna len spravcovi systemu.
+ References_priv. V sucasnosti sa nepouziva.
+ Index_priv. Umoznuje uzivatelovi vytvarat alebo odstranovat indexy. Toto privilegium nie je ovplyvnene nastavenim Create_priv alebo
Drop_priv. Takze, aj ked ma uzivatel vyssie uvedene privilegia, na vytvaranie indexov potrebuje Index_priv.
+ Alter_priv. Dovoluje uzivatelovi menit strukturu tabulky. Pridelenim tohoto privilegia uzivatelovi nevznika jeho narok na pracu s indexmi.

17 vyssie uvedenych privilegii su tzv. globalne privilegia.
Ak ma napriklad uzivatel udelene privilegia odstranovat zaznamy v tabulke user, moze odstranovat zaznamy v akejkolvek tabulke na databazovom serveri. Tento priklad evokuje problemy. Napriklad uz pri situacii 2 databazy (tabulky) a 2 uzivatelia, by nastal problem, ze by si mohli navzajom mazat zaznamy. Samozrejme, takato situacia je nechcena, ale existuju riesenia na jej odstranenie. Avsak o tych viac az v dalsej casti tohoto mini serialu.ddaemon