Et karakteristisk trekk ved MySQL er dens egen sikkerhet, som er avhengig av ekstern beskyttelse. Som et moderne, fullverdig og effektivt databasestyringssystem har MySQL sine egne verktøy for å administrere brukere og deres tilgang til ressursene den kontrollerer.
Hvis du ikke vet riktig brukernavn og passord, er det svært vanskelig å få tilgang til databasen via MySQL.
I normal vertsmodus er dette nok. Uforutsette situasjoner, hackerangrep og andre problemer er et spørsmål om ekstern systemadministrasjon og sikkerhetstjenester. Dette konseptet har blitt tradisjonelt og er praktisk t alt ikke diskutert.
Installer MySQL-server og brukerrot
I hvilket som helst driftsmiljø databasebehandlingssystemet er installert, har det alltid minst én bruker: root. Installer MySQL, opprett en bruker med alle root-rettigheter - uten dette, arbeid medserver er ikke mulig. Denne brukerens rettigheter er tilstrekkelige til å:
- opprett og administrer nye brukere;
- opprett og administrer databaser.
Det er grunnleggende mulig for "passordløse" brukere å eksistere i MySQL, men dette er uakseptabelt.
Vanlig praksis:
- server installert på egen datamaskin, hvor hosting kan installeres (lok alt alternativ);
- server er på offentlig hosting på Internett.
I det første tilfellet er det mulig å jobbe med serveren fra kommandolinjen og bruke phpMyAdmin, i det andre tilfellet kun phpMyAdmin eller et lignende verktøy, men kommandolinjen kan nås via ekstern SSH-tilgang.
Egne administrasjonsverktøy
Følelsen av slektskap med Unixoid-familien og med fortiden fra Apache-servere er et kjennetegn på MySQL: create user er en kommandolinje med merkelig syntaks. For profesjonelle som jobber med Linux og lignende systemer, er dette like kjent som det ser vilt ut i øynene til Windows-brukere som aldri har «gått inn i det virkelige liv».
Oppretting av en bruker starter med å starte serverens kommandolinje. I et Windows-miljø gjøres dette som følger.
Først (1) må du kjøre kommandolinjen som administrator, deretter gå til mappen der MySQL ligger (2), deretterstart selve serveren (3):
mysql -u… -p
her er "-u…" og "-p" nøkler som peker til navnet "…"=root (eller annet navn) og passordet. I prinsippet kan en bruker ikke være root, men en som har "root" (administrative) rettigheter.
Viktig: serveren kjører faktisk alltid, her er mysql -u… -p kommandoen for å få tilgang til serveren, ikke starte den.
I et Linux-miljø og lignende systemer er en slik kommando en "native" handling og bestemmes som regel ved å starte mysqld på rett sted (på rett vei), dette bør sjekkes med administratoren. Det er vanligvis et annet navn her: ikke mysql, men mysqld. Også her er denne handlingen ikke alltid tilgjengelig for alle brukere (av operativsystemet, ikke til MySQL-serveren). I motsetning til Windows, i Linuxoids, er orden og sikkerhet et naturlig og ikke-omsettelig krav, som alltid behandles på en sivilisert måte.
I alle fall, når mysql har startet, vil den kunngjøre dette med en melding (4):
mysql>
og det vil være mulig å jobbe med både brukere og databaser.
Merk. Når du installerer i et Windows-miljø, kan alt: Apache, MySQL, PHP, phpMyAdmin settes til standardbaner, men det anbefales å bruke mer kompakte og nærmere plasseringer for disse viktige verktøyene:
- 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\.
Denne logikken vil ikke bare forenkle administrasjonen, men også utvide utviklerens mulighet til å flytte mellom produktversjoner og administrere funksjonaliteten deres.
Jobber med MySQL-kommandolinjen
Når serveren har svart og gitt kommandolinjen, kan brukere opprettes og tildeles tillatelser.
I dette eksempelet opprettet kommandoen create user brukeren Petrov med passordet 123DFG. Hvis det oppstår en feil når du skriver inn en kommando, tilbyr serveren å rette den, men det er bedre å aldri gjøre feil når du arbeider på kommandolinjen!
Følgende kommando gir alle privilegier gir alle rettigheter til alt. Flush-kommandoen kan utelates, men den 'popper' bufferen av kommandoer, det vil si at den fikser utførelsen av dem.
MySQL: opprett en bruker og gi rettigheter til databasen
Kommando brukt i eksempelet:
GI ALLE PRIVILEGIER PÅ. TIL 'Petrov'@'localhost';
gir faktisk bruker Petrov tilgang til alle databaser (første stjerne) til alle tabeller (andre stjerne).
Som en generell MySQL-regel er det å opprette en bruker:
GRANT [privilegietype] PÅ [databasenavn].[tabellnavn] TIL '[bruker]'@'localhost';
Følgende rettigheter er tillatt:
- ALLE PRIVILEGES - alle rettigheter.
- CREATE - retten til å opprette nye tabeller/databaser.
- DROP - retten til å droppe tabeller/databaser.
- DELETE - rett til å slette informasjon i tabeller.
- INSERT - rett til å skrive informasjon til tabeller.
- SELECT - rett til å lese informasjon fra tabeller.
- OPPDATERING - rett til å oppdatere informasjon i tabeller.
- GRANT OPTION - retten til å arbeide med rettighetene til andre brukere.
Fra et praktisk synspunkt, i MySQL innebærer "opprett en bruker" tre alternativer for rettigheter:
- alle rettigheter til alle databaser og alle brukere;
- les og skriv;
- skrivebeskyttet.
Andre alternativer for å gi rettigheter er sjelden nødvendig. I Linux-miljøet er det mye mer grunnlag for "lovlig" frihet (og nødvendighet), men det er mye flere muligheter der enn i Windows.
Den omvendte operasjonen av MySQL "opprett bruker" er droppet.
slipp bruker 'Petrov'@'localhost';
Etter å ha utført denne kommandoen, vil ikke Petrov lenger være en bruker og privilegiene hans vil gå tapt. For å endre privilegier, bruk kommandoen:
REVOKE [privilege] PÅ [DB].[Tabell] TIL '[bruker]'@'localhost';
Den vanlige handlingen i MySQL er å opprette en bruker eller slette den, men å endre privilegier er også en gyldig operasjon (sjelden etterspurt).
Using phpMyAdmin
Det er mange implementeringer av dette fantastiske verktøyet. Avhengig av hvilken versjon av Apache, PHP og MySQL som brukes, tar det ofte lang tid å finne den riktige versjonen av dette produktet, men når phpMyAdmin er vellykket installert, har brukeren mange praktiske funksjoner og en komfortabelgrensesnitt.
Ved å bruke phpMyAdmin kan du gi MySQL beskjed om å opprette en bruker for enhver vert og administrere eksisterende brukere på nesten kirurgiske måter.
phpMyAdmin er ikke det eneste verktøyet med et komfortabelt, intuitivt og funksjonsrikt grensesnitt, men det er det mest populære verktøyet for å administrere MySQL-servere.
Om kommandolinjen og sikkerhet
Selvfølgelig er det en lite attraktiv øvelse å bruke MySQL-kommandolinjen, men det bør tas i betraktning at i noen tilfeller er det kun serverens kommandolinje som kan lagre databasen eller brukeren, sikre import eller eksport av informasjon.
Programvareversjoner utvikler seg så raskt at utviklere rett og slett ikke har tid til å kombinere funksjonene til for eksempel PHP og MySQL, MySQL og phpMyAdmin. Hvis noe skjer, vil kommandolinjen alltid redde dagen.
Man bør heller aldri glemme: MySQL-administrasjon handler kun om tilgang til databasene og gjennom funksjonaliteten. Databasefilene er åpne for tilgang utenfor MySQL. Ekstern sikring av MySQL og ressursene den kontrollerer er et reelt og viktig behov.