Zabezpecenie databazy MySQL – 02.

21.04.2003 17:10

Sposoby zaclenenia zabezpecenia do MySQL II.

Nakolko by bolo zabezpecenie iba prostrednictvom tabulky user (vid minula cast) znacne nepohodlne, nedostatocne a v podstate v praxi nepouzitelne, existuju aj nasledujuce tabulky:

Tabulka db

Tabulka db obsahuje informacie o privilegiach pridelenych pre jednotlive databazy na danom MySQL serveri. Privilegia udelene v tejto tabulke su platne iba pre danu databazu. Az na vynimky obsahuje tabulka db vsetky polia tak, ako tabulka user. Vzhladom na fakt, ze niektore privilegia nemozu byt pridelovane na urovni databazy, chybaju privilegia pre spravu: Reload_priv, Shutdown_priv, Process_priv a File_priv. Tieto privilegia sa nevztahuju na operacie vo vnutri databazy a z tohoto dovodu su umiestnene v tabulke user. Jedinym novym polom je pole Db. To obsahuje nazov databazy, pre ktoru budu nastavene privilegia platne.

Tabulka host

Tabulka host spolocne s tabulkou db riadia pristup k databazam obmedzenim uzivatelov, ktori sa k nim mozu prihlasit. Obsahuje rovnake polia ako tabulka db.

Tabulky columns_priv a tables_priv

Tabulky columns_priv a tables_priv riadia pristup k tabulkam a jednotlivym poliam tabuliek (stlpcom). Mozete teda stanovit, co moze uzivatel s urcitou tabulkou alebo jej urcitym polom robit. Tieto tabulky maju nasledujuce stlpce:

+Host. Nazov hostitela, z ktoreho sa uzivatel k systemu pripaja.
+Db. Databaza, ktora obsahuje tabulky, na ktore sa prislusne privilegia vztahuju.
+User. Uzivatelske meno osoby, ktorej privilegia udelujete.
+Table_name. Nazov tabulky, pre ktoru udelujete privilegia. V hodnotach tohoto pola sa rozlisuju velke a male pismena!
+Timestamp. Tento stlpce obsahuje casovu znacku poslednej zmeny.
+Column_priv. Obsahom tohoto pola je nastavenie udelenych privilegii pre vybrane tabulky. Je to typ mnoziny (SET), ktora moze obsahovat iba hodnoty SELECT, INSERT, UPDATE, REFERENCES. Pokial je udelenych viac privilegii, musia byt oddelene ciarkou.

Stlpce Grantor a Table_priv su iba v tabulke tables_priv. Pole Grantor uchovava meno osoby, ktora privilegia udelila. V poli Table_priv su ulozene privilegia pre danu tabulku. Pole moze obsahovat nasledujuce hodnoty alebo ich kombinacie: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX a ALTER.

Tabulka columns_priv ma iba jedno pole, ktore sa nevyskytuje v tabulke tables_priv. Je nim pole Column_name. Obsahuje nazov pola, na ktore sa vztahuju privilegia udelene v poli Column_priv.

Note: Prepacte mi takuto strucnost, ale vzhladom na doveru vo vasu inteligenciu som si odpustil prakticku aplikaciu predchadzajucich pravidiel...ddaemon