MySQL raksturīga iezīme ir tā drošība, kas paļaujas uz ārēju aizsardzību. Tā kā MySQL ir mūsdienīga, pilnvērtīga un efektīva datu bāzes pārvaldības sistēma, tai ir savi rīki lietotāju pārvaldībai un viņu piekļuvei tās kontrolētajiem resursiem.
Ja nezināt pareizo lietotājvārdu un paroli, piekļūt datubāzei, izmantojot MySQL, ir ļoti grūti.
Parastā mitināšanas režīmā ar to pietiek. Neparedzētas situācijas, hakeru uzbrukumi un citas nepatikšanas ir ārējo sistēmu administrēšanas un drošības dienestu jautājums. Šis jēdziens ir kļuvis tradicionāls un praktiski netiek apspriests.
Instalējiet MySQL serveri un lietotāja sakni
Jebkurā darbības vidē ir instalēta datu bāzes pārvaldības sistēma, tai vienmēr ir vismaz viens lietotājs: root. Instalējiet MySQL, izveidojiet lietotāju ar visām root tiesībām - bez tā strādājiet arserveris nav iespējams. Šī lietotāja privilēģijas ir pietiekamas, lai:
- izveidot un administrēt jaunus lietotājus;
- izveidot un pārvaldīt datu bāzes.
Pamatā MySQL lietotājiem ir iespējams pastāvēt bez paroles, taču tas ir nepieņemami.
Izplatīta prakse:
- uz sava datora uzstādīts serveris, kurā var uzstādīt hostingu (lokālā iespēja);
- serveris atrodas publiskajā mitināšanā internetā.
Pirmajā gadījumā ir iespējams strādāt ar serveri no komandrindas un izmantot phpMyAdmin, otrajā gadījumā tikai phpMyAdmin vai līdzīgu rīku, bet komandrindai var piekļūt, izmantojot attālo SSH piekļuvi.
Paši administrēšanas rīki
Radniecības sajūta ar Unixoid ģimeni un pagātni no Apache serveriem ir MySQL iezīme: Create user ir komandrinda ar dīvainu sintaksi. Profesionāļiem, kas strādā ar Linux un līdzīgām sistēmām, tas ir tikpat labi pazīstams, cik tas izskatās mežonīgs to Windows lietotāju acīs, kuri nekad nav “iekļuvuši reālajā dzīvē”.
Lietotāja izveide sākas ar servera komandrindas palaišanu. Windows vidē tas tiek darīts šādi.
Vispirms (1) jums ir jāpalaiž komandrinda kā administratoram, pēc tam dodieties uz mapi, kurā atrodas MySQL (2), pēc tamstartējiet pašu serveri (3):
mysql -u… -p
šeit “-u…” un “-p” ir taustiņi, kas norāda uz nosaukumu “…”=root (vai cits nosaukums) un tā paroli. Principā lietotājs var būt nevis root, bet gan tāds, kuram ir "root" (administratīvās) tiesības.
Svarīgi: serveris faktiski vienmēr darbojas, šeit mysql -u… -p ir komanda, lai piekļūtu serverim, nevis sāktu to.
Linux vidē un līdzīgās sistēmās šāda komanda ir "native" darbība un, kā likums, tiek noteikta, vienkārši startējot mysqld pareizajā vietā (pareizajā ceļā), tas jāpārbauda ar administrators. Šeit parasti ir cits nosaukums: nevis mysql, bet mysqld. Arī šeit šī darbība ne vienmēr ir pieejama visiem lietotājiem (operētājsistēmas, nevis MySQL servera). Atšķirībā no Windows, Linuxoīdos kārtība un drošība ir dabiska un neapspriežama prasība, pret kuru vienmēr izturas civilizēti.
Jebkurā gadījumā, tiklīdz mysql būs startēts, tas par to paziņos ar uzvedni (4):
mysql>
un būs iespējams strādāt gan ar lietotājiem, gan datu bāzēm.
Piezīme. Instalējot Windows vidē, visu: Apache, MySQL, PHP, phpMyAdmin var iestatīt uz noklusējuma ceļiem, taču šiem svarīgajiem rīkiem ieteicams izmantot kompaktākas un tuvākas atrašanās vietas:
- 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\.
Šī loģika ne tikai vienkāršos administrēšanu, bet arī paplašinās izstrādātāja iespējas pārvietoties starp produktu versijām un pārvaldīt to funkcionalitāti.
Darbs ar MySQL komandrindu
Kad serveris ir atbildējis un nodrošinājis savu komandrindu, lietotājus var izveidot un piešķirt tiem atļaujas.
Šajā piemērā komanda izveidot lietotāju izveidoja lietotāju Petrov ar paroli 123DFG. Ja, ievadot komandu, tiek pieļauta kļūda, serveris piedāvā to izlabot, taču, strādājot ar komandrindu, labāk nekad nekļūdīties!
Šā komanda piešķir visas privilēģijas piešķir visas tiesības uz visu. Skalošanas komandu var izlaist, taču tā "izlaiž" komandu buferi, tas ir, nosaka to izpildi.
MySQL: izveidojiet lietotāju un piešķiriet tiesības datubāzei
Piemērā izmantotā komanda:
PIEŠĶIRT VISAS PRIVILĒĢIJAS. 'Petrov'@'localhost';
faktiski piešķir lietotājam Petrovam piekļuvi visām datu bāzēm (pirmā zvaigznīte) visām tabulām (otrā zvaigznīte).
Kā vispārīgs MySQL noteikums, lietotāja izveide ir:
GRANT [privilēģijas veids] IESLĒGTS [datu bāzes nosaukums].[tabulas nosaukums] UZ '[lietotājs]'@'localhost';
Ir atļautas šādas privilēģijas:
- VISAS PRIVILĒĢIJAS - visas tiesības.
- CREATE - tiesības izveidot jaunas tabulas/datu bāzes.
- DROP - tiesības nomest tabulas/datu bāzes.
- DZĒST - tiesības dzēst informāciju tabulās.
- INSERT - tiesības rakstīt informāciju tabulās.
- SELECT - tiesības lasīt informāciju no tabulām.
- UPDATE - tiesības atjaunināt informāciju tabulās.
- GRANT OPTION - tiesības strādāt ar citu lietotāju privilēģijām.
No praktiskā viedokļa MySQL "izveidot lietotāju" nozīmē trīs tiesību iespējas:
- visas tiesības uz visām datu bāzēm un visiem lietotājiem;
- lasi un raksti;
- tikai lasāms.
Citas iespējas tiesību piešķiršanai ir nepieciešamas reti. Linux vidē "likumīgai" brīvībai (un nepieciešamībai) ir daudz vairāk pamatu, taču tur ir daudz vairāk iespēju nekā Windows.
MySQL “lietotāja izveides” apgrieztā darbība tiek pārtraukta.
nomest lietotāju 'Petrov'@'localhost';
Pēc šīs komandas izpildes Petrovs vairs nebūs lietotājs un viņa privilēģijas tiks zaudētas. Lai mainītu privilēģijas, izmantojiet komandu:
ATCELT [privilēģiju] ON [DB].[Tabula] UZ '[lietotājs]'@'localhost';
Parastā darbība MySQL ir lietotāja izveidošana vai tā dzēšana, taču arī privilēģiju maiņa ir derīga darbība (reti tiek pieprasīta).
Izmantojot phpMyAdmin
Šī brīnišķīgā rīka versijas ir daudz. Atkarībā no izmantotās Apache, PHP un MySQL versijas, bieži vien ir nepieciešams ilgs laiks, lai atrastu pareizo šī produkta versiju, taču, kad phpMyAdmin ir veiksmīgi instalēts, lietotājam ir daudz ērtu funkciju un ērtusaskarne.
Izmantojot phpMyAdmin, varat norādīt MySQL izveidot lietotāju jebkuram saimniekdatoram un pārvaldīt esošos lietotājus gandrīz ķirurģiskos veidos.
phpMyAdmin nav vienīgais rīks ar ērtu, intuitīvu un funkcijām bagātu saskarni, taču tas ir vispopulārākais MySQL serveru administrēšanas rīks.
Par komandrindu un drošību
Protams, MySQL komandrindas izmantošana ir nepievilcīgs vingrinājums, taču jāņem vērā, ka dažos gadījumos tikai servera komandrinda var saglabāt datu bāzi vai lietotāju, nodrošināt informācijas importēšanu vai eksportēšanu.
Programmatūras versijas attīstās tik ātri, ka izstrādātājiem vienkārši nav laika apvienot, piemēram, PHP un MySQL, MySQL un phpMyAdmin funkcijas. Ja kaut kas notiek, komandrinda vienmēr saglabās dienu.
Nekad nevajadzētu aizmirst: MySQL administrēšana ir tikai piekļuve datu bāzēm un tās funkcionalitāte. Datu bāzes faili ir atvērti piekļuvei ārpus MySQL. Ārēja MySQL un tā kontrolēto resursu nodrošināšana ir reāla un svarīga vajadzība.