Karakteristična značajka MySQL-a je njegova vlastita sigurnost, oslanjajući se na vanjsku zaštitu. Kao moderan, potpuno opremljen i učinkovit sustav upravljanja bazom podataka, MySQL ima vlastite alate za upravljanje korisnicima i njihovim pristupom resursima koje kontrolira.
Ako ne znate ispravno korisničko ime i lozinku, pristup bazi podataka putem MySQL-a je vrlo težak.
U normalnom načinu hostinga, ovo je dovoljno. Nepredviđene situacije, hakerski napadi i druge nevolje stvar su vanjske administracije sustava i sigurnosnih službi. Ovaj koncept je postao tradicionalan i o njemu se praktički ne raspravlja.
Instalirajte MySQL poslužitelj i root korisnika
U kojem god operativnom okruženju sustav upravljanja bazom podataka instaliran, uvijek ima barem jednog korisnika: root. Instalirajte MySQL, stvorite korisnika sa svim root pravima - bez ovoga radite sposlužitelj nije moguć. Povlastice ovog korisnika dovoljne su za:
- kreirajte i administrirajte nove korisnike;
- kreirajte i upravljajte bazama podataka.
U osnovi je moguće da korisnici "bez lozinke" postoje u MySQL-u, ali to je neprihvatljivo.
Uobičajena praksa:
- poslužitelj instaliran na vlastitom računalu, gdje se može instalirati hosting (lokalna opcija);
- poslužitelj je na javnom hostingu na internetu.
U prvom slučaju moguće je raditi s poslužiteljem iz naredbenog retka i koristiti phpMyAdmin, u drugom slučaju samo phpMyAdmin ili sličan alat, ali se naredbenom retku može pristupiti putem udaljenog SSH pristupa.
vlastiti alati za administraciju
Osjećaj srodnosti s obitelji Unixoid i s prošlošću Apache poslužitelja obilježje je MySQL-a: create user je naredbeni redak sa čudnom sintaksom. Za profesionalce koji rade s Linuxom i sličnim sustavima, ovo je poznato koliko i divlje u očima korisnika Windowsa koji nikada nisu "ušli u stvarni život".
Kreiranje korisnika počinje pokretanjem naredbenog retka poslužitelja. U Windows okruženju to se radi na sljedeći način.
Prvo (1) trebate pokrenuti naredbeni redak kao administrator, zatim otići u mapu u kojoj se nalazi MySQL (2), zatimpokrenite sam poslužitelj (3):
mysql -u… -p
ovdje "-u…" i "-p" su ključevi koji upućuju na ime "…"=root (ili drugo ime) i njegovu lozinku. U principu, korisnik možda nije root, već onaj koji ima "root" (administrativna) prava.
Važno: poslužitelj je zapravo uvijek pokrenut, ovdje je mysql -u… -p naredba za pristup poslužitelju, a ne za pokretanje.
U Linux okruženju i sličnim sustavima takva je naredba "nativna" akcija i u pravilu se određuje jednostavnim pokretanjem mysqld na pravom mjestu (na pravom putu), to treba provjeriti s administratora. Ovdje obično postoji drugačiji naziv: ne mysql, već mysqld. Također ovdje ova radnja nije uvijek dostupna svim korisnicima (operativnog sustava, a ne MySQL poslužitelja). Za razliku od Windowsa, u Linuxoidima, red i sigurnost su prirodni zahtjevi o kojima se ne može pregovarati, koji se uvijek tretiraju na civiliziran način.
U svakom slučaju, kada se mysql pokrene, to će najaviti promptom (4):
mysql>
i bit će moguće raditi i s korisnicima i s bazama podataka.
Napomena. Prilikom instalacije u Windows okruženju, sve: Apache, MySQL, PHP, phpMyAdmin može se postaviti na zadane staze, ali se preporučuje korištenje kompaktnijih i bližih mjesta za ove važne alate:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\site1\www;
- c:\SCiB\site2\www;
- …
- c:\SCiB\siteN\www\.
Ova logika ne samo da će pojednostaviti administraciju, već i proširiti sposobnost razvojnog programera da se kreće između verzija proizvoda i upravlja njihovom funkcionalnošću.
Rad na MySQL naredbenoj liniji
Nakon što poslužitelj odgovori i pruži svoj naredbeni redak, korisnici se mogu kreirati i dodijeliti im dopuštenja.
U ovom primjeru, naredba create user stvorila je korisnika Petrov s lozinkom 123DFG. Ako se napravi pogreška prilikom unosa naredbe, poslužitelj nudi da je ispravi, ali bolje je nikada ne pogriješiti kada radite na naredbenom retku!
Sljedeća naredba dodjeljuje sve privilegije daje sva prava na sve. Naredba flush može se izostaviti, ali 'iskače' međuspremnik naredbi, odnosno popravlja njihovo izvršenje.
MySQL: stvorite korisnika i dodijelite prava na bazu podataka
Naredba korištena u primjeru:
DAJTE SVE PRIVILEGIJE NA. 'Petrov'@'localhost';
zapravo daje korisniku Petrov pristup svim bazama podataka (prva zvjezdica) svim tablicama (druga zvjezdica).
Kao opće MySQL pravilo, kreiranje korisnika je:
GRANT [vrsta privilegije] ON [naziv baze podataka].[naziv tablice] TO '[user]'@'localhost';
Dopuštene su sljedeće privilegije:
- SVE PRIVILEGIJE - sva prava.
- CREATE - pravo na stvaranje novih tablica/baza podataka.
- DROP - pravo na ispuštanje tablica/baza podataka.
- DELETE - pravo na brisanje informacija u tablicama.
- INSERT - pravo upisivanja informacija u tablice.
- SELECT - pravo čitanja informacija iz tablica.
- UPDATE - pravo ažuriranja informacija u tablicama.
- DAJTE OPCIJA - pravo na rad s privilegijama drugih korisnika.
S praktične točke gledišta, u MySQL-u "kreiraj korisnika" podrazumijeva tri opcije za prava:
- sva prava na sve baze podataka i sve korisnike;
- čitaj i piši;
- samo za čitanje.
Druge opcije za dodjelu prava rijetko su potrebne. U Linux okruženju postoji mnogo više osnova za "pravnu" slobodu (i nužnost), ali tu ima puno više mogućnosti nego u Windowsima.
Obrnuta operacija MySQL "kreiraj korisnika" je ispuštanje.
ispusti korisnika 'Petrov'@'localhost';
Nakon izvršenja ove naredbe, Petrov više neće biti korisnik i njegove će privilegije biti izgubljene. Za promjenu privilegija upotrijebite naredbu:
OPOZIV [povlasti] NA [DB].[Tablica] NA '[korisnik]'@'localhost';
Uobičajena radnja u MySQL-u je stvoriti korisnika ili ga izbrisati, ali promjena privilegija je također valjana operacija (rijetko se traži).
Upotreba phpMyAdmin
Postoji mnogo implementacija ovog prekrasnog alata. Ovisno o korištenoj verziji Apachea, PHP-a i MySQL-a, često je potrebno dosta vremena da se pronađe prava verzija ovog proizvoda, ali nakon što je phpMyAdmin uspješno instaliran, korisnik ima mnogo praktičnih značajki i udobansučelje.
Upotrebom phpMyAdmin-a možete reći MySQL-u da stvori korisnika za bilo koji host i upravlja postojećim korisnicima na gotovo kirurške načine.
phpMyAdmin nije jedini alat s udobnim, intuitivnim i značajkama bogatim sučeljem, ali je najpopularniji alat za administriranje MySQL poslužitelja.
O naredbenom retku i sigurnosti
Naravno, korištenje MySQL naredbenog retka je neprivlačna vježba, ali treba imati na umu da u nekim slučajevima samo naredbeni redak poslužitelja može spasiti bazu podataka ili korisnika, osigurati uvoz ili izvoz informacija.
Verzije softvera se razvijaju tako brzo da programeri jednostavno nemaju vremena kombinirati značajke, na primjer, PHP-a i MySQL-a, MySQL-a i phpMyAdmin-a. Ako se nešto dogodi, naredbena linija će uvijek spasiti stvar.
Također nikada ne treba zaboraviti: MySQL administracija je samo u pristupu njegovim bazama podataka i kroz njegovu funkcionalnost. Datoteke baze podataka otvorene su za pristup izvan MySQL-a. Eksterno osiguranje MySQL-a i resursa koje on kontrolira je stvarna i važna potreba.