Zoeken op website

Hoe u een nieuwe gebruiker kunt maken en machtigingen kunt verlenen in MySQL


MySQL is een populair en veelgebruikt databasebeheersysteem dat gegevens opslaat en ordent, zodat gebruikers deze kunnen ophalen. Het wordt geleverd met een breed scala aan opties die gebruikers bepaalde machtigingen voor tabellen en databases verlenen.

In deze handleiding leert u hoe u een nieuwe gebruiker kunt aanmaken en rechten kunt verlenen in de MySQL-database.

Hoe u een nieuwe gebruiker in MySQL maakt

Om een nieuwe gebruiker aan te maken, logt u eerst in op de MySQL-shell.

sudo mysql -u root -p

Geef het sudo-wachtwoord op, gevolgd door het wachtwoord dat is opgegeven bij het instellen van de MySQL-database en druk op ENTER. Daarna krijgt u deze prompt.

Om een nieuwe gebruiker aan te maken, gebruikt u de onderstaande syntaxis:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Als u bijvoorbeeld een nieuwe gebruiker met de naam ‘tecmint’ in de database wilt aanmaken, voert u de opdracht uit:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Een paar punten om in gedachten te houden

Wanneer u een gebruiker lokaal toevoegt, d.w.z. op het systeem waarop u MySQL hebt geïnstalleerd, wordt de host van de gebruiker opgegeven als localhost, en niet het IP-adres. Het trefwoord ‘localhost’ vertaalt zich naar ‘deze computer’ en MySQL behandelt het op unieke wijze. In principe wordt localhost door de mysql-client gebruikt om een verbinding tot stand te brengen met de lokaal geïnstalleerde MySQL-databaseserver.

Tot nu toe heeft de tecmint-gebruiker geen toestemming om met de databases te communiceren. In feite heeft de gebruiker zelfs geen toegang tot de MySQL-shell.

Om de gebruiker volledige toegang te verlenen tot alle databases, inclusief de tabellen, voert u het programma uit.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

In de bovenstaande opdracht wijzen de sterretjes respectievelijk naar de database en de tabel waartoe de gebruiker toegang heeft. Het verleent de gebruiker alle rechten op de database – lezen, schrijven, bewerken en uitvoeren, inclusief het uitvoeren van alle ook de taken in andere databases en tabellen.

Tot nu toe hebben we de gebruiker volledige toegang tot de database verleend. Hoewel dit handig is bij het uitleggen van MySQL-concepten, wordt het over het algemeen niet aanbevolen, omdat dit een beveiligingsrisico voor uw databases kan vormen. Bedenk eens wat er zou kunnen gebeuren als een hacker het wachtwoord van de gebruiker te pakken zou krijgen. We gaan verder en bespreken in de volgende sectie hoe u specifieke machtigingen kunt toewijzen.

Wanneer u klaar bent met het toewijzen van machtigingen aan de gebruiker, laadt u alle rechten opnieuw zoals weergegeven, zodat de wijzigingen van kracht worden.

MariaDB [none]> FLUSH PRIVILEGES

Hoe u verschillende gebruikersmachtigingen kunt verlenen

Hier volgt een overzicht van de mogelijke machtigingen die u gebruikers kunt verlenen:

  • ALLE PRIVILEGES – Zoals eerder gezien geeft dit een MySQL-gebruiker volledige toegang tot een specifieke database.
  • CREATE – Hiermee kunnen gebruikers nieuwe databases of tabellen maken.
  • DROP – Hiermee kunnen gebruikers databases of gebruikers verwijderen.
  • INSERT – Hiermee kunnen gebruikers rijen in tabellen invoegen.
  • VERWIJDEREN – Hiermee kunnen gebruikers rijen uit tabellen verwijderen.
  • SELECT – met de toestemming ‘SELECT’ kunnen gebruikers de inhoud van een tabel lezen.
  • UPDATE – Hiermee kunnen gebruikers de rijen in een tabel bijwerken.
  • VERLEEN OPTIE – Gebruikers kunnen de rechten van andere gebruikers verlenen of intrekken.

Om een specifieke gebruiker toestemming te verlenen, gebruikt u de syntaxis:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Bovendien kunt u machtigingen toewijzen aan alle tabellen in een database met een enkel sterretje, zoals weergegeven:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Als u bijvoorbeeld SELECT-rechten wilt toewijzen aan de gebruiker ‘tecmint’ voor alle tabellen van de database testdb, voert u de opdracht uit.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Wis vervolgens de rechten zodat de wijzigingen van kracht worden.

MariaDB [none]> FLUSH PRIVILEGES;

Bovendien kunt u meerdere machtigingen tegelijk toewijzen door ze te scheiden met een komma, zoals weergegeven.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Hoe MySQL-machtigingen in te trekken

Gebruik de syntaxis om machtigingen van een gebruiker in te trekken:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Als u bijvoorbeeld de INSERT-rechten van de gebruiker ‘tecmint’ wilt intrekken, voert u de opdracht uit.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Om een kijkje te nemen in de huidige rechten van een gebruiker, voert u het volgende uit:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Uit de onderstaande uitvoer kunnen we zien dat de INSERT-toestemming is verwijderd van de 'tecmint'-gebruiker, waardoor alleen SELECT en UPDATE overblijven rechten op de testdb database.

Om het inloggen op de MySQL-shell met de nieuwe gebruiker uit te testen, logt u eerst uit.

MariaDB [none]> quit;

Log dan opnieuw in.

sudo mysql -u tecmint -p

Geef het wachtwoord van de gebruiker op en druk op ENTER om toegang te krijgen tot de shell.

Om een gebruiker te verwijderen, gebruikt u de opdracht DROP, net zoals u zou doen bij het verwijderen van een database.

MariaDB [none]> DROP USER 'username'@'localhost';

Misschien wilt u ook de volgende MySQL-gerelateerde artikelen lezen:

  • Handige tips voor het oplossen van veelvoorkomende fouten in MySQL
  • Mytop – Een handig hulpmiddel voor het monitoren van MySQL/MariaDB-prestaties onder Linux
  • Hoe u de standaard MySQL/MariaDB-poort in Linux kunt wijzigen
  • Hoe MySQL of MariaDB root-wachtwoord opnieuw in te stellen in Linux
Conclusie

Hopelijk kunt u inmiddels gebruikers op uw MySQL-databaseservers aanmaken en op een comfortabele manier machtigingen toewijzen of intrekken.