Značilna lastnost MySQL je lastna varnost, ki se zanaša na zunanjo zaščito. Kot sodoben, vsestranski in učinkovit sistem za upravljanje baz podatkov ima MySQL lastna orodja za upravljanje uporabnikov in njihovega dostopa do virov, ki jih nadzoruje.
Če ne poznate pravilnega uporabniškega imena in gesla, je dostop do baze podatkov prek MySQL zelo težaven.
V običajnem načinu gostovanja je to dovolj. Nepredvidene situacije, hekerski napadi in druge težave so stvar zunanje sistemske administracije in varnostnih služb. Ta koncept je postal tradicionalen in se o njem praktično ne razpravlja.
Namesti strežnik MySQL in uporabniški root
V katerem koli operacijskem okolju je nameščen sistem za upravljanje baze podatkov, ima vedno vsaj enega uporabnika: root. Namestite MySQL, ustvarite uporabnika z vsemi root pravicami - brez tega delajte zstrežnik ni mogoč. Privilegiji tega uporabnika zadostujejo za:
- ustvarjanje in upravljanje novih uporabnikov;
- ustvarjanje in upravljanje baz podatkov.
V osnovi je možno, da uporabniki "brez gesla" obstajajo v MySQL, vendar je to nesprejemljivo.
običajna praksa:
- strežnik nameščen na lastnem računalniku, kjer je mogoče namestiti gostovanje (lokalna možnost);
- strežnik je na javnem gostovanju v internetu.
V prvem primeru je možno delati s strežnikom iz ukazne vrstice in uporabljati phpMyAdmin, v drugem primeru samo phpMyAdmin ali podobno orodje, vendar je do ukazne vrstice mogoče dostopati preko oddaljenega SSH dostopa.
Lastna skrbniška orodja
Občutek sorodstva z družino Unixoid in s preteklostjo strežnikov Apache je značilnost MySQL: create user je ukazna vrstica s čudno sintakso. Za profesionalce, ki delajo z Linuxom in podobnimi sistemi, je to tako znano, kot je videti divje v očeh uporabnikov Windows, ki še nikoli niso "vstopili v resnično življenje."
Ustvarjanje uporabnika se začne z zagonom ukazne vrstice strežnika. V okolju Windows se to naredi na naslednji način.
Najprej (1) morate zagnati ukazno vrstico kot skrbnik, nato pojdite v mapo, kjer se nahaja MySQL (2), natozaženi sam strežnik (3):
mysql -u… -p
tukaj sta "-u…" in "-p" ključa, ki kažeta na ime "…"=root (ali drugo ime) in njegovo geslo. Načeloma uporabnik morda ni root, ampak ima "root" (administrativne) pravice.
Pomembno: strežnik dejansko vedno deluje, tukaj je mysql -u… -p ukaz za dostop do strežnika, ne za zagon.
V okolju Linux in podobnih sistemih je tak ukaz "native" dejanje in se praviloma določi tako, da preprosto zaženete mysqld na pravem mestu (na pravi poti), to je treba preveriti z skrbnika. Tu je običajno drugo ime: ne mysql, ampak mysqld. Tudi tukaj to dejanje ni vedno na voljo vsem uporabnikom (operacijskega sistema, ne strežnika MySQL). Za razliko od Windows sta v Linuxoidih red in varnost naravna zahteva, o kateri se ni mogoče pogajati, o kateri se vedno obravnava civilizirano.
V vsakem primeru, ko se mysql zažene, bo to objavil s pozivom (4):
mysql>
in bo mogoče delati tako z uporabniki kot z bazami podatkov.
Opomba. Pri namestitvi v okolje Windows je mogoče vse: Apache, MySQL, PHP, phpMyAdmin nastaviti na privzete poti, vendar je priporočljivo uporabiti bolj kompaktne in bližje lokacije za ta pomembna orodja:
- 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\.
Ta logika ne bo samo poenostavila administracije, ampak tudi razširila razvijalčevo zmožnost premikanja med različicami izdelka in upravljanja njihove funkcionalnosti.
Delo v ukazni vrstici MySQL
Ko se strežnik odzove in zagotovi ukazno vrstico, lahko ustvarite uporabnike in jim dodelite dovoljenja.
V tem primeru je ukaz za ustvarjanje uporabnika ustvaril uporabnika Petrov z geslom 123DFG. Če pri vnosu ukaza pride do napake, strežnik ponudi, da jo popravi, vendar je bolje, da pri delu v ukazni vrstici nikoli ne delate napak!
Naslednji ukaz dodeli vse privilegije daje vse pravice za vse. Ukaz flush je mogoče izpustiti, vendar 'izskoči' medpomnilnik ukazov, torej popravi njihovo izvajanje.
MySQL: ustvarite uporabnika in podelite pravice za bazo podatkov
Ukaz uporabljen v primeru:
DODELITE VSE PRIVILEGIJE NA. 'Petrov'@'localhost';
dejansko dovoljuje uporabniku Petrov dostop do vseh baz podatkov (prva zvezdica) do vseh tabel (druga zvezdica).
Kot splošno pravilo MySQL je ustvarjanje uporabnika:
GRANT [vrsta privilegij] ON [ime baze podatkov].[ime tabele] TO '[user]'@'localhost';
Naslednji privilegiji so dovoljeni:
- VSE PRIVILEGIJE - vse pravice.
- CREATE - pravica do ustvarjanja novih tabel/baz podatkov.
- DROP - pravica do spuščanja tabel/baz podatkov.
- DELETE - pravica do brisanja informacij v tabelah.
- INSERT - pravica do zapisovanja informacij v tabele.
- SELECT - pravica do branja informacij iz tabel.
- UPDATE - pravica do posodobitve informacij v tabelah.
- DAJTE MOŽNOST - pravica do dela s privilegiji drugih uporabnikov.
S praktičnega vidika v MySQL "ustvari uporabnika" pomeni tri možnosti za pravice:
- vse pravice do vseh podatkovnih baz in vseh uporabnikov;
- beri in piši;
- samo za branje.
Druge možnosti za podelitev pravic so redko potrebne. V okolju Linux je veliko več razlogov za "pravno" svobodo (in nujnost), vendar je tam veliko več priložnosti kot v Windows.
Obratna operacija MySQL "ustvari uporabnika" je pad.
izpusti uporabnika 'Petrov'@'localhost';
Po izvedbi tega ukaza Petrov ne bo več uporabnik in njegovi privilegiji bodo izgubljeni. Če želite spremeniti privilegije, uporabite ukaz:
PREKLICI [privilegij] NA [DB].[Tabela] NA '[uporabnik]'@'localhost';
Običajno dejanje v MySQL je ustvariti uporabnika ali ga izbrisati, vendar je sprememba privilegijev tudi veljavna operacija (redko zahtevana).
Uporaba phpMyAdmin
Obstaja veliko izvedb tega čudovitega orodja. Odvisno od uporabljene različice Apache, PHP in MySQL pogosto traja veliko časa, da najdemo pravo različico tega izdelka, a ko je phpMyAdmin uspešno nameščen, ima uporabnik številne priročne funkcije in udobnovmesnik.
Z uporabo phpMyAdmin lahko poveste MySQL, naj ustvari uporabnika za katerega koli gostitelja in upravlja obstoječe uporabnike na skoraj kirurški način.
phpMyAdmin ni edino orodje z udobnim, intuitivnim in funkcijsko bogatim vmesnikom, je pa najbolj priljubljeno orodje za upravljanje strežnikov MySQL.
O ukazni vrstici in varnosti
Seveda je uporaba ukazne vrstice MySQL neprivlačna vaja, vendar je treba upoštevati, da lahko v nekaterih primerih samo ukazna vrstica strežnika shrani bazo podatkov ali uporabnika, zagotovi uvoz ali izvoz informacij.
Različice programske opreme se razvijajo tako hitro, da razvijalci preprosto nimajo časa za združevanje funkcij, na primer, PHP in MySQL, MySQL in phpMyAdmin. Če se kaj zgodi, bo ukazna vrstica vedno rešila dan.
Prav tako ne smemo pozabiti: skrbništvo MySQL je namenjeno samo dostopu do njegovih baz podatkov in preko njegove funkcionalnosti. Datoteke baze podatkov so odprte za dostop izven MySQL. Zunanje varovanje MySQL in virov, ki jih nadzira, je resnična in pomembna potreba.