MySQL-beheer: hoe een gebruiker aan te maken en zijn rechten te definiëren

Inhoudsopgave:

MySQL-beheer: hoe een gebruiker aan te maken en zijn rechten te definiëren
MySQL-beheer: hoe een gebruiker aan te maken en zijn rechten te definiëren
Anonim

Een kenmerkend kenmerk van MySQL is zijn eigen beveiliging, die vertrouwt op externe bescherming. Als een modern, volledig uitgerust en efficiënt databasebeheersysteem heeft MySQL zijn eigen tools voor het beheren van gebruikers en hun toegang tot de bronnen die het beheert.

mysql gebruiker aanmaken
mysql gebruiker aanmaken

Als u de juiste gebruikersnaam en het juiste wachtwoord niet weet, is toegang tot de database via MySQL erg moeilijk.

In de normale hostingmodus is dit voldoende. Onvoorziene situaties, hackeraanvallen en andere problemen zijn een kwestie van extern systeembeheer en beveiligingsdiensten. Dit concept is traditioneel geworden en wordt praktisch niet besproken.

Installeer MySQL-server en gebruiker root

In welke besturingsomgeving het databasebeheersysteem ook is geïnstalleerd, het heeft altijd ten minste één gebruiker: root. Installeer MySQL, maak een gebruiker aan met alle rootrechten - zonder dit, werk metserver is niet mogelijk. De rechten van deze gebruiker zijn voldoende om:

  • nieuwe gebruikers aanmaken en beheren;
  • databases maken en beheren.
mysql maak een gebruiker aan en geef rechten aan de database
mysql maak een gebruiker aan en geef rechten aan de database

Het is in principe mogelijk voor "wachtwoordloze" gebruikers in MySQL, maar dit is onaanvaardbaar.

Algemene praktijk:

  • server geïnstalleerd op eigen computer, waar hosting kan worden geïnstalleerd (lokale optie);
  • server staat op openbare hosting op internet.

In het eerste geval is het mogelijk om met de server te werken vanaf de opdrachtregel en phpMyAdmin te gebruiken, in het tweede geval alleen phpMyAdmin of een vergelijkbare tool, maar de opdrachtregel is toegankelijk via externe SSH-toegang.

Eigen beheertools

Gevoel verwantschap met de Unixoid-familie en met het verleden van Apache-servers is een kenmerk van MySQL: gebruiker aanmaken is een opdrachtregel met een vreemde syntaxis. Voor professionals die met Linux en soortgelijke systemen werken, is dit even vertrouwd als wild in de ogen van Windows-gebruikers die nog nooit "het echte leven zijn binnengegaan".

Het aanmaken van een gebruiker begint met het starten van de serveropdrachtregel. In een Windows-omgeving gaat dit als volgt.

mysql gebruiker aanmaken met alle rechten
mysql gebruiker aanmaken met alle rechten

Eerst (1) moet u de opdrachtregel uitvoeren als beheerder, ga dan naar de map waar MySQL zich bevindt (2), danstart de server zelf (3):

mysql -u… -p

hier zijn "-u…" en "-p" sleutels die verwijzen naar de naam "…"=root (of een andere naam) en zijn wachtwoord. In principe mag een gebruiker geen root zijn, maar wel een gebruiker met "root" (administratieve) rechten.

Belangrijk: de server is eigenlijk altijd actief, hier is mysql -u… -p het commando om toegang te krijgen tot de server, niet om hem te starten.

In een Linux-omgeving en vergelijkbare systemen is zo'n commando een "native" actie en wordt in de regel bepaald door mysqld eenvoudig op de juiste plaats (op het juiste pad) te starten, dit moet worden gecontroleerd met de beheerder. Meestal staat hier een andere naam: niet mysql, maar mysqld. Ook hier is deze actie niet altijd beschikbaar voor alle gebruikers (van het besturingssysteem, niet van de MySQL-server). In tegenstelling tot Windows zijn in Linuxoids orde en veiligheid een natuurlijke en niet-onderhandelbare vereiste, die altijd op een beschaafde manier wordt behandeld.

In ieder geval, zodra mysql is gestart, zal het dit aankondigen met een prompt (4):

mysql>

en het zal mogelijk zijn om met zowel gebruikers als databases te werken.

Opmerking. Bij installatie in een Windows-omgeving kan alles: Apache, MySQL, PHP, phpMyAdmin worden ingesteld op standaardpaden, maar het wordt aanbevolen om compactere en dichterbij gelegen locaties te gebruiken voor deze belangrijke tools:

  • 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\.

Deze logica vereenvoudigt niet alleen het beheer, maar vergroot ook de mogelijkheid van de ontwikkelaar om tussen productversies te schakelen en hun functionaliteit te beheren.

Werken op de MySQL-opdrachtregel

Zodra de server heeft gereageerd en de opdrachtregel heeft opgegeven, kunnen gebruikers worden gemaakt en machtigingen worden toegewezen.

mysql gebruiker aanmaken voor elke host
mysql gebruiker aanmaken voor elke host

In dit voorbeeld heeft de opdracht create user de gebruiker Petrov gemaakt met het wachtwoord 123DFG. Als er een fout wordt gemaakt bij het invoeren van een opdracht, biedt de server aan om deze te corrigeren, maar het is beter om nooit fouten te maken bij het werken op de opdrachtregel!

Het volgende commando verleent alle privileges geeft alle rechten op alles. Het flush-commando kan worden weggelaten, maar het 'kn alt' de buffer van commando's, dat wil zeggen, het corrigeert hun uitvoering.

MySQL: maak een gebruiker aan en verleen rechten aan de database

Opdracht gebruikt in het voorbeeld:

VERLENEN ALLE VOORRECHTEN OP. AAN 'Petrov'@'localhost';

verleent gebruiker Petrov feitelijk toegang tot alle databases (eerste sterretje) tot alle tabellen (tweede sterretje).

mysql gebruiker aanmaken met alle rechten
mysql gebruiker aanmaken met alle rechten

Als algemene MySQL-regel is het aanmaken van een gebruiker:

GRANT [type privilege] OP [databasenaam].[tabelnaam] AAN '[gebruiker]'@'localhost';

De volgende privileges zijn toegestaan:

  • ALLE VOORRECHTEN - alle rechten.
  • CREATE - het recht om nieuwe tabellen/databases aan te maken.
  • DROP - het recht om tabellen/databases te verwijderen.
  • DELETE - het recht om informatie in tabellen te verwijderen.
  • INSERT - het recht om informatie naar tabellen te schrijven.
  • SELECT - het recht om informatie uit tabellen te lezen.
  • UPDATE - het recht om informatie in tabellen bij te werken.
  • SUBSIDIEOPTIE - het recht om te werken met de privileges van andere gebruikers.

Vanuit een praktisch oogpunt houdt in MySQL "een gebruiker maken" drie opties voor rechten in:

  • alle rechten op alle databases en alle gebruikers;
  • lezen en schrijven;
  • alleen lezen.

Andere opties voor het verlenen van rechten zijn zelden vereist. In de Linux-omgeving zijn er veel meer gronden voor "wettelijke" vrijheid (en noodzaak), maar daar zijn veel meer mogelijkheden dan in Windows.

De omgekeerde bewerking van MySQL "create user" is drop.

gebruiker 'Petrov'@'localhost' laten vallen;

Na het uitvoeren van deze opdracht is Petrov geen gebruiker meer en gaan zijn rechten verloren. Gebruik de opdracht om de privileges te wijzigen:

REVOKE [privilege] OP [DB].[Table] TO '[user]'@'localhost';

De gebruikelijke actie in MySQL is om een gebruiker aan te maken of die te verwijderen, maar het wijzigen van privileges is ook een geldige handeling (zelden gevraagd).

Gebruik phpMyAdmin

Er zijn veel implementaties van deze geweldige tool. Afhankelijk van de versie van Apache, PHP en MySQL die wordt gebruikt, duurt het vaak lang om de juiste versie van dit product te vinden, maar als phpMyAdmin eenmaal succesvol is geïnstalleerd, heeft de gebruiker veel handige functies en een comfortabeleinterface.

mysql gebruiker aanmaken voor elke host
mysql gebruiker aanmaken voor elke host

Door phpMyAdmin te gebruiken, kun je MySQL vertellen een gebruiker aan te maken voor elke host en bestaande gebruikers op bijna-chirurgische manieren te beheren.

phpMyAdmin is niet de enige tool met een comfortabele, intuïtieve en veelzijdige interface, maar het is de meest populaire tool voor het beheren van MySQL-servers.

Over de opdrachtregel en beveiliging

Het gebruik van de MySQL-opdrachtregel is natuurlijk een onaantrekkelijke oefening, maar er moet rekening mee worden gehouden dat in sommige gevallen alleen de serveropdrachtregel de database of gebruiker kan opslaan en de import of export van informatie kan garanderen.

mysql gebruiker aanmaken voor elke host
mysql gebruiker aanmaken voor elke host

Softwareversies evolueren zo snel dat ontwikkelaars simpelweg geen tijd hebben om de functies van bijvoorbeeld PHP en MySQL, MySQL en phpMyAdmin te combineren. Als er iets gebeurt, zal de opdrachtregel altijd de dag redden.

Men mag ook nooit vergeten: MySQL-beheer gaat alleen over toegang tot zijn databases en via zijn functionaliteit. De databasebestanden zijn open voor toegang buiten MySQL. Het extern beveiligen van MySQL en de bronnen die het beheert, is een reële en belangrijke behoefte.

Aanbevolen: