En karakteristisk egenskap hos MySQL är dess egen säkerhet, som förlitar sig på externt skydd. Som ett modernt, fullfjädrat och effektivt databashanteringssystem har MySQL sina egna verktyg för att hantera användare och deras tillgång till de resurser som den kontrollerar.
Om du inte känner till rätt användarnamn och lösenord är det mycket svårt att komma åt databasen via MySQL.
I norm alt värdläge räcker detta. Oförutsedda situationer, hackerattacker och andra problem är en fråga om extern systemadministration och säkerhetstjänster. Detta koncept har blivit traditionellt och diskuteras praktiskt taget inte.
Installera MySQL-server och användarrot
I vilken operativsystem som databashanteringssystemet än är installerat har det alltid minst en användare: root. Installera MySQL, skapa en användare med alla root-rättigheter - utan detta, arbeta medservern är inte möjlig. Den här användarens rättigheter är tillräckliga för att:
- skapa och administrera nya användare;
- skapa och hantera databaser.
Det är i grunden möjligt för "lösenordslösa" användare att existera i MySQL, men detta är oacceptabelt.
Vanlig praxis:
- server installerad på egen dator, där hosting kan installeras (lok alt alternativ);
- servern är på offentlig värd på Internet.
I det första fallet är det möjligt att arbeta med servern från kommandoraden och använda phpMyAdmin, i det andra fallet endast phpMyAdmin eller liknande verktyg, men kommandoraden kan nås via fjärråtkomst till SSH.
Egna administrationsverktyg
Känslan av släktskap med Unixoid-familjen och med det förflutna från Apache-servrar är ett kännetecken för MySQL: skapa användare är en kommandorad med konstig syntax. För proffs som arbetar med Linux och liknande system är detta lika bekant som det ser vilt ut i Windows-användares ögon som aldrig har "trätt in i det verkliga livet".
Att skapa en användare börjar med att starta serverns kommandorad. I en Windows-miljö görs detta enligt följande.
Först (1) måste du köra kommandoraden som administratör, gå sedan till mappen där MySQL finns (2), sedanstarta själva servern (3):
mysql -u… -p
här är "-u…" och "-p" nycklar som pekar på namnet "…"=root (eller annat namn) och dess lösenord. I princip får en användare inte vara root, utan en som har "root" (administrativa) rättigheter.
Viktigt: servern är faktiskt alltid igång, här är mysql -u… -p kommandot för att komma åt servern, inte starta den.
I en Linux-miljö och liknande system är ett sådant kommando en "native" åtgärd och bestäms som regel genom att helt enkelt starta mysqld på rätt plats (på rätt väg), detta bör kontrolleras med administratören. Det finns vanligtvis ett annat namn här: inte mysql, utan mysqld. Även här är denna åtgärd inte alltid tillgänglig för alla användare (av operativsystemet, inte för MySQL-servern). Till skillnad från Windows, i Linuxoids, är ordning och säkerhet ett naturligt och icke förhandlingsbart krav, som alltid behandlas på ett civiliserat sätt.
I alla fall, när mysql har startat, kommer det att meddela detta med en prompt (4):
mysql>
och det kommer att vara möjligt att arbeta med både användare och databaser.
Obs. När du installerar i en Windows-miljö kan allt: Apache, MySQL, PHP, phpMyAdmin ställas in på standardsökvägar, men det rekommenderas att använda mer kompakta och närmare platser för dessa viktiga verktyg:
- 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\.
Denna logik kommer inte bara att förenkla administrationen, utan också utöka utvecklarens förmåga att flytta mellan produktversioner och hantera deras funktionalitet.
Arbetar på MySQL-kommandoraden
När servern har svarat och tillhandahållit sin kommandorad kan användare skapas och tilldelas behörigheter.
I det här exemplet skapade kommandot create user användaren Petrov med lösenordet 123DFG. Om ett fel görs när du anger ett kommando, erbjuder servern att korrigera det, men det är bättre att aldrig göra misstag när du arbetar på kommandoraden!
Följande kommando bevilja alla privilegier ger alla rättigheter till allt. Tömningskommandot kan utelämnas, men det "popper" bufferten av kommandon, det vill säga det fixar deras exekvering.
MySQL: skapa en användare och ge rättigheter till databasen
Kommando som används i exemplet:
BEHANDLA ALLA PRIVILEGIER PÅ. TILL 'Petrov'@'localhost';
ger faktiskt användaren Petrov tillgång till alla databaser (första asterisken) till alla tabeller (andra asterisken).
Som en allmän MySQL-regel är att skapa en användare:
GRANT [privilegietyp] PÅ [databasnamn].[tabellnamn] TILL '[användare]'@'localhost';
Följande privilegier är tillåtna:
- ALLA PRIVILEGES - alla rättigheter.
- CREATE - rätten att skapa nya tabeller/databaser.
- DROP - rätten att släppa tabeller/databaser.
- DELETE - rätten att radera information i tabeller.
- INSERT - rätten att skriva information till tabeller.
- SELECT - rätten att läsa information från tabeller.
- UPDATE - rätten att uppdatera information i tabeller.
- GRANT ALTERNATIV - rätten att arbeta med andra användares privilegier.
Från en praktisk synvinkel, i MySQL innebär "skapa en användare" tre alternativ för rättigheter:
- alla rättigheter till alla databaser och alla användare;
- läs och skriv;
- skrivskyddad.
Andra alternativ för att bevilja rättigheter krävs sällan. I Linux-miljön finns det mycket fler skäl för "rättslig" frihet (och nödvändighet), men det finns mycket fler möjligheter där än i Windows.
Den omvända operationen av MySQL "skapa användare" släpps.
släpp användare 'Petrov'@'localhost';
Efter att ha utfört detta kommando kommer Petrov inte längre att vara en användare och hans privilegier kommer att gå förlorade. För att ändra privilegier, använd kommandot:
REVOKE [privilegium] PÅ [DB].[Tabell] TILL '[användare]'@'localhost';
Den vanliga åtgärden i MySQL är att skapa en användare eller ta bort den, men att ändra privilegier är också en giltig operation (efterfrågas sällan).
Using phpMyAdmin
Det finns många implementeringar av detta underbara verktyg. Beroende på vilken version av Apache, PHP och MySQL som används tar det ofta lång tid att hitta rätt version av denna produkt, men när phpMyAdmin väl har installerats har användaren många praktiska funktioner och en bekvämgränssnitt.
Med phpMyAdmin kan du be MySQL att skapa en användare för vilken värd som helst och hantera befintliga användare på nästan kirurgiska sätt.
phpMyAdmin är inte det enda verktyget med ett bekvämt, intuitivt och funktionsrikt gränssnitt, men det är det mest populära verktyget för att administrera MySQL-servrar.
Om kommandoraden och säkerhet
Naturligtvis är det en oattraktiv övning att använda MySQL-kommandoraden, men man bör komma ihåg att i vissa fall endast serverns kommandorad kan spara databasen eller användaren, säkerställa import eller export av information.
Mjukvaruversioner utvecklas så snabbt att utvecklare helt enkelt inte har tid att kombinera funktionerna i till exempel PHP och MySQL, MySQL och phpMyAdmin. Om något händer kommer kommandoraden alltid att rädda dagen.
Man får heller aldrig glömma: MySQL-administration handlar bara om att komma åt dess databaser och genom dess funktionalitet. Databasfilerna är öppna för åtkomst utanför MySQL. Externt säkra MySQL och de resurser den kontrollerar är ett verkligt och viktigt behov.