Et karakteristisk træk ved MySQL er dets egen sikkerhed, der er afhængig af ekstern beskyttelse. Som et moderne, fuldt udstyret og effektivt databasestyringssystem har MySQL sine egne værktøjer til at administrere brugere og deres adgang til de ressourcer, den kontrollerer.
Hvis du ikke kender det korrekte brugernavn og adgangskode, er det meget svært at få adgang til databasen via MySQL.
I normal hosting-tilstand er dette nok. Uforudsete situationer, hackerangreb og andre problemer er et spørgsmål om ekstern systemadministration og sikkerhedstjenester. Dette koncept er blevet traditionelt og er praktisk t alt ikke diskuteret.
Installer MySQL-server og brugerrod
I hvilket driftsmiljø databasestyringssystemet er installeret, har det altid mindst én bruger: root. Installer MySQL, opret en bruger med alle root-rettigheder - uden dette, arbejd medserver er ikke mulig. Denne brugers privilegier er tilstrækkelige til at:
- opret og administrer nye brugere;
- opret og administrer databaser.
Det er grundlæggende muligt for "adgangskodeløse" brugere at eksistere i MySQL, men dette er uacceptabelt.
Almindelig praksis:
- server installeret på egen computer, hvor hosting kan installeres (lokal mulighed);
- server er på offentlig hosting på internettet.
I det første tilfælde er det muligt at arbejde med serveren fra kommandolinjen og bruge phpMyAdmin, i det andet tilfælde kun phpMyAdmin eller et lignende værktøj, men kommandolinjen kan tilgås via ekstern SSH-adgang.
Egne administrationsværktøjer
Følelsen af slægtskab med Unixoid-familien og med fortiden fra Apache-servere er et kendetegn ved MySQL: create user er en kommandolinje med mærkelig syntaks. For fagfolk, der arbejder med Linux og lignende systemer, er dette lige så velkendt, som det ser vildt ud i øjnene af Windows-brugere, der aldrig er "kommet ind i det virkelige liv."
Oprettelse af en bruger starter med at starte serverens kommandolinje. I et Windows-miljø gøres dette som følger.
Først (1) skal du køre kommandolinjen som administrator, derefter gå til mappen, hvor MySQL er placeret (2), derefterstart selve serveren (3):
mysql -u… -p
her er "-u…" og "-p" nøgler, der peger på navnet "…"=root (eller andet navn) og dets adgangskode. I princippet må en bruger ikke være root, men en der har "root" (administrative) rettigheder.
Vigtigt: serveren kører faktisk altid, her er mysql -u… -p kommandoen for at få adgang til serveren, ikke starte den.
I et Linux-miljø og lignende systemer er en sådan kommando en "native" handling og bestemmes som regel ved blot at starte mysqld på det rigtige sted (på den rigtige sti), dette skal kontrolleres med administratoren. Der er norm alt et andet navn her: ikke mysql, men mysqld. Også her er denne handling ikke altid tilgængelig for alle brugere (af operativsystemet, ikke af MySQL-serveren). I modsætning til Windows er orden og sikkerhed i Linuxoids et naturligt og ikke-omsætteligt krav, som altid behandles på en civiliseret måde.
Under alle omstændigheder, når mysql er startet, vil det annoncere dette med en prompt (4):
mysql>
og det vil være muligt at arbejde med både brugere og databaser.
Bemærk. Når du installerer i et Windows-miljø, kan alt: Apache, MySQL, PHP, phpMyAdmin indstilles til standardstier, men det anbefales at bruge mere kompakte og tættere placeringer til disse vigtige værktøjer:
- 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 logik vil ikke kun forenkle administrationen, men også udvide udviklerens mulighed for at flytte mellem produktversioner og administrere deres funktionalitet.
Arbejder på MySQL-kommandolinjen
Når serveren har svaret og leveret sin kommandolinje, kan brugere oprettes og tildeles tilladelser.
I dette eksempel oprettede kommandoen create user brugeren Petrov med adgangskoden 123DFG. Hvis der opstår en fejl, når du indtaster en kommando, tilbyder serveren at rette den, men det er bedre aldrig at lave fejl, når du arbejder på kommandolinjen!
Den følgende kommando giver alle privilegier giver alle rettigheder til alt. Flush-kommandoen kan udelades, men den 'popper' bufferen af kommandoer, det vil sige, den retter deres udførelse.
MySQL: Opret en bruger og giv rettigheder til databasen
Kommando brugt i eksemplet:
GIV ALLE PRIVILEGIER PÅ. TIL 'Petrov'@'localhost';
giver faktisk brugeren Petrov adgang til alle databaser (første stjerne) til alle tabeller (anden stjerne).
Som en generel MySQL-regel er oprettelse af en bruger:
GRANT [privilegietype] TIL [databasenavn].[tabelnavn] TIL '[bruger]'@'localhost';
Følgende privilegier er tilladt:
- ALLE PRIVILEGES - alle rettigheder.
- CREATE - retten til at oprette nye tabeller/databaser.
- DROP - retten til at droppe tabeller/databaser.
- DELETE - retten til at slette oplysninger i tabeller.
- INSERT - retten til at skrive information til tabeller.
- SELECT - retten til at læse information fra tabeller.
- UPDATE - retten til at opdatere oplysninger i tabeller.
- GRANT OPTION - retten til at arbejde med andre brugeres privilegier.
Fra et praktisk synspunkt indebærer "opret en bruger" i MySQL tre muligheder for rettigheder:
- alle rettigheder til alle databaser og alle brugere;
- læse og skrive;
- skrivebeskyttet.
Andre muligheder for at tildele rettigheder er sjældent påkrævet. I Linux-miljøet er der meget mere grund til "lovlig" frihed (og nødvendighed), men der er meget flere muligheder der end i Windows.
Den omvendte handling af MySQL "opret bruger" er droppet.
drop bruger 'Petrov'@'localhost';
Efter at have udført denne kommando, vil Petrov ikke længere være bruger, og hans privilegier vil gå tabt. For at ændre privilegier, brug kommandoen:
REVOKE [privilege] PÅ [DB].[Tabel] TIL '[bruger]'@'localhost';
Den sædvanlige handling i MySQL er at oprette en bruger eller slette den, men at ændre privilegier er også en gyldig handling (sjældent anmodet om).
Using phpMyAdmin
Der er mange implementeringer af dette vidunderlige værktøj. Afhængigt af den anvendte version af Apache, PHP og MySQL, tager det ofte lang tid at finde den rigtige version af dette produkt, men når først phpMyAdmin er installeret, har brugeren mange praktiske funktioner og en komfortabelgrænseflade.
Ved at bruge phpMyAdmin kan du bede MySQL om at oprette en bruger til enhver vært og administrere eksisterende brugere på næsten kirurgiske måder.
phpMyAdmin er ikke det eneste værktøj med en komfortabel, intuitiv og funktionsrig grænseflade, men det er det mest populære værktøj til at administrere MySQL-servere.
Om kommandolinjen og sikkerhed
Selvfølgelig er det en uattraktiv øvelse at bruge MySQL-kommandolinjen, men man skal huske på, at i nogle tilfælde kun serverens kommandolinje kan gemme databasen eller brugeren, sikre import eller eksport af information.
Softwareversioner udvikler sig så hurtigt, at udviklere simpelthen ikke har tid til at kombinere funktionerne i for eksempel PHP og MySQL, MySQL og phpMyAdmin. Hvis der sker noget, vil kommandolinjen altid redde dagen.
Man bør heller aldrig glemme: MySQL-administration handler kun om at få adgang til dens databaser og gennem dens funktionalitet. Databasefilerne er åbne for adgang uden for MySQL. Ekstern sikring af MySQL og de ressourcer, den kontrollerer, er et reelt og vigtigt behov.