MySQL časť dvanásta - Bezpečnosť a pridávanie užívateľa do db

Je síce horúce leto a asi by bolo lepšie niekde pri vode, lenže aj pracovať treba a preto sa aj dnes ponoríme do našich MySQL tabuliek a povieme si opäť pár dôležitých informácií. Napríklad aj o tom, ako vytvoriť užívateľa k našej databáze so špeciálne obmedzenými prístupovými právami na prácu s ňou.

Doteraz sme sa pracovali s našou cvičnou db s názvom "test" na ktorú sme pristupovali ako užívateľ "root" a bola bez hesla. Z bezpečnostného hľadiska je však takýto prístup na databázu maximálne nevhodný a neprípustný. Samozrejem pre naše cvičné účely to postačovalo. Keď však budeme chcieť vytvoriť nejakú ostú db s nejakými dôležitými údajmi, bude potrebné vytvoriť pre ňu špeciálného užívateľa, ktorý bude slúžiť na prístup do db ostatným užívateľom (či už internetu, alebo intranetu), ktorý budú mať presne vymedzené práva na prácu s našou db.

Ako vytvoriť db sme si už vraveli, ale nebude na škodu si to trochu zopakovať. Najskôr sa prihlásime do mysql pod užívateľom "root" :

C:mysqlbin>mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2 to server version: 3.21.29a-gamma-debug

Type 'help' for help.

mysql>

A teraz môžeme vytvoriť databázu. Pomenujeme ju "db_ostra" a vytvoríme ju pomocou príkazu "create database" :

mysql> create database db_ostra;
Query OK, 1 row affected (0.05 sec)

Takto nejak by sme to robili na Windowse, ukážme si aj postup na Linuxe (rep. všeobecne na UNIXe): Predpokladajme, že MySQL máme nainštalovanú a funkčnú v adresári: /usr/local/mysql. Potom vytvorenie db zrealizujeme nasledovne pomocou "mysqladmin":

bin/mysqladmin -uroot -p create database_name

Po zadaní hesla pre užívateľa "root" sa nám databáza "database_name" vytvorí. Prihlásime sa do nej nasledovne:

bin/mysql -uroot -p database_name

No to by sme mali. Poďme teraz ďalej a skúsme si vytvoriť nového užívateľa pre našu db a pridajme mu prístupové práva ako sme si sľúbili v úvode.

Predpokladajme teda že potrebujeme do našej "db_ostra" pristupovať povedzme pomocou PHP scriptu a nechceme to realizovať cez užívateľa "root" (čo je absolútna blbosť a tomuto sa račšej vyhnite). Vzhľadom na zjednodušenie si vytvoríme užívateľa s rovnakým názvom ako je názov db a pridelíme mu prístupové práva pre čítanie, vkladanie, zmenu údajov a mazanie. Tento užívateľ bude mať obmedzený prístup do db a to možnosťou logovať sa do db len z localhostu (teda lokálného počítača, kde beží db).

Celé toto realizujeme jednoduchým použitím príkazu GRANT - nasledujúcim spôsobom:

mysql> GRANT SELECT ,INSERT ,UPDATE ,DELETE
	ON db_ostra.*
	TO db_ostra@localhost
	IDENTIFIED BY 'moje_heslo';

Pozn. Nie je to možno dostatočne zreteľné, ale keď sa na tento zápis pozriete lepšie zistíte, že je to jednoduché. Len si je potrebné uvedomiť, že názov databázy je "db_ostra" a aj názov užívateľa je "db_ostra" s heslom 'moje_heslo'.

Na dnes by to aj hádam stačilo, ale už teraz sa môžete tešiť na ďalšiu časť nášho seriálu v ktorej sa budeme venovať exportu a importu údajov a dát v SQL.

Developer,
Stiahnuté z Developer.sk