• Productupdates

Hoe maak je een gebruiker aan in MySQL? (Stapsgewijze handleiding voor het aanmaken van een gebruiker in MySQL)

Hoe maak je een gebruiker aan in MySQL? (Stapsgewijze handleiding voor het aanmaken van een gebruiker in MySQL)

Inhoudsopgave

MySQL is een veelgebruikt open-source relationeel databasebeheersysteem (RDBMS). Het is vaak een belangrijk onderdeel van de LAMP-stack, die bestaat uit Linux, Apache, MySQL en PHP. MySQL staat bekend om zijn populariteit en uitgebreide toepassing en is een van de meest gebruikte open-source databases wereldwijd.

In deze handleiding leert u hoe u gebruikers aanmaakt in MySQL en hen de nodige rechten toekent om verschillende taken uit te voeren.

Vereisten

U hebt toegang tot een MySQL-database nodig om deze handleiding te kunnen volgen. Deze handleiding is gebaseerd op een MySQL-database die is geïnstalleerd op een Ubuntu 22.04 virtuele privéserver, maar de instructies zijn in het algemeen ook van toepassing op andere omgevingen.

De stappen voor het aanmaken van een nieuwe MySQL-gebruiker en het toekennen van rechten zijn vergelijkbaar voor verschillende besturingssystemen en serverconfiguraties.

Een gebruiker aanmaken in MySQL (alle rechten toekennen in MySQL)

Wanneer MySQL wordt geïnstalleerd, wordt er een standaard root-gebruikersaccount aangemaakt met volledige toegang tot de MySQL-server. Dit account heeft volledige controle over alle databases, tabellen en gebruikers. Het is echter het beste om het root-account te reserveren voor administratieve taken en aparte gebruikersaccounts aan te maken voor andere doeleinden.

In dit gedeelte wordt uitgelegd hoe u een nieuwe MySQL-gebruiker aanmaakt en deze specifieke rechten toekent met behulp van het root-account.

Op Ubuntu-systemen met MySQL 5.7 en nieuwer wordt de root-gebruiker van MySQL doorgaans geauthenticeerd via de auth_socket-plugin in plaats van een wachtwoord. Dit betekent dat de root-gebruiker van MySQL overeenkomt met de gebruiker van het besturingssysteem die de opdracht uitvoert.

U kunt de geïnstalleerde MySQL-versie eenvoudig controleren met deze opdracht:

Om toegang te krijgen tot het root-account van MySQL, moet u sudo gebruiken met de MySQL-clientopdracht, waardoor deze de nodige rechten krijgt om verbinding te maken als de root-gebruiker van MySQL.

Als de root-MySQL-gebruiker is ingesteld om zich te authenticeren met een wachtwoord, hebt u een andere opdracht nodig om toegang te krijgen tot de MySQL-shell. Gebruik de volgende opdracht om in te loggen als een gewone gebruiker en voer het wachtwoord van de root-gebruiker in om beheerdersrechten binnen de database te verkrijgen:

# mysql -u root -p

Een nieuwe gebruiker aanmaken in MySQL

Nadat u toegang hebt gekregen tot de MySQL-prompt, kunt u een nieuwe gebruiker aanmaken met de opdracht CREATE USER. De algemene syntaxis voor deze opdracht is als volgt:

> CREATE USER ‘gebruikersnaam’@'host' IDENTIFIED WITH authentication_plugin BY ‘wachtwoord’;

Om een nieuwe gebruiker aan te maken in MySQL, begint u met het opgeven van de gebruikersnaam na het commando CREATE USER. Laat de gebruikersnaam volgen door een @-symbool en de hostnaam van waaruit de gebruiker verbinding zal maken. Als de gebruiker alleen lokaal vanaf de Ubuntu-server toegang heeft tot de database, kunt u localhost gebruiken. Hoewel het optioneel is om de gebruikersnaam en hostnaam tussen enkele aanhalingstekens te plaatsen, wordt dit aanbevolen om mogelijke fouten te voorkomen.

U kunt kiezen uit verschillende authenticatieplugins voor uw gebruiker. De eerder genoemde auth_socket-plug-in biedt sterke beveiliging en zorgt ervoor dat gebruikers geen wachtwoord hoeven in te voeren. Deze plug-in beperkt echter externe verbindingen, wat een probleem kan zijn voor externe programma's die toegang tot de database nodig hebben.

U kunt ook het gedeelte WITH authentication_plugin van de syntaxis overslaan om standaard de caching_sha2_password-plug-in van MySQL te gebruiken. Deze plug-in wordt aanbevolen voor wachtwoordgebaseerde authenticatie vanwege de robuuste beveiligingsfuncties.

Gebruik de volgende opdracht om een gebruiker in MySQL aan te maken die zich authenticeert met caching_sha2_password. Vervang sammy door de gewenste gebruikersnaam en password door een sterk, veilig wachtwoord:

> CREATE USER ‘test’@'localhost' IDENTIFIED BY ‘password’;

Sommige PHP-versies hebben een bekend probleem met de caching_sha2_password-plug-in, wat compatibiliteitsproblemen kan veroorzaken. Als u van plan bent de database te gebruiken met een PHP-toepassing, zoals phpMyAdmin, kunt u beter een gebruiker aanmaken die de oudere, maar nog steeds veilige mysql_native_password-plug-in gebruikt. U kunt een gebruiker aanmaken in MySQL met de volgende opdracht:

> CREATE USER ‘techUser’@'localhost' IDENTIFIED WITH mysql_native_password BY ‘password’;

Als u twijfelt, kunt u de gebruiker eerst aanmaken met de caching_sha2_password-plug-in en later indien nodig overschakelen naar mysql_native_password. Gebruik de volgende opdracht om deze wijziging door te voeren:

> ALTER USER ‘techUser’@'localhost' IDENTIFIED WITH mysql_native_password BY ‘password’;

Zodra de nieuwe gebruiker is aangemaakt, kunt u doorgaan met het toewijzen van de benodigde rechten.

Database aanmaken in MySQL

U moet de database aanmaken en de gebruiker de nodige rechten toekennen. Om een database aan te maken in MySQL, voert u de volgende opdracht uit:

> CREATE DATABASE testdatabase;

Hiermee maakt u een lege database aan met de naam “testdatabase” die u voor uw toepassing kunt gebruiken.

Rechten toekennen aan de gebruiker: Nadat u de database hebt aangemaakt, moet u de gebruiker testUser volledige toegang geven tot de database.

Dit doet u door het volgende uit te voeren:

> GRANT ALL PRIVILEGES ON testdatabase.* TO ‘techUser’@'localhost';

Met deze opdracht krijgt techUser volledige controle over de testdatabase, waardoor hij alle acties (zoals SELECT, INSERT, UPDATE, DELETE, enz.) kan uitvoeren op alle tabellen in die database. Het gedeelte localhost betekent dat de gebruiker alleen toegang heeft tot de database vanaf de lokale server.

Dit zorgt ervoor dat de gebruiker de vereiste rechten heeft om de specifieke database te beheren, terwijl zijn toegang wordt beperkt tot alleen de mytestapp-database en vanaf de lokale server.

Alle rechten toekennen aan gebruiker in MySQL (Grant All Privileges MySQL)

Om gebruikersspecifieke rechten toe te kennen in MySQL, is de algemene syntaxis:

> GRANT PRIVILEGE ON database.table TO ‘username’@'host';

Hier specificeert PRIVILEGE de acties die de gebruiker kan uitvoeren op een bepaalde database en tabel. U kunt meerdere privileges toekennen in één opdracht, gescheiden door komma's. Om globale privileges (voor alle databases en tabellen) toe te kennen, gebruikt u sterretjes (*) om ‘alles’ aan te duiden.

Met de volgende opdracht krijgt een gebruiker bijvoorbeeld de mogelijkheid om databases en tabellen aan te maken, te wijzigen en te verwijderen, evenals gegevens in te voegen, bij te werken en te verwijderen, en query's uit te voeren met SELECT. Het maakt ook het aanmaken van externe sleutels en het uitvoeren van FLUSH-bewerkingen mogelijk met de RELOAD-bevoegdheid:

> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO ‘techUser’@'localhost' WITH GRANT OPTION;

Met WITH GRANT OPTION kan de gebruiker zijn privileges aan anderen toekennen. Wijs om veiligheidsredenen alleen de noodzakelijke rechten toe aan uw gebruikers.

Een volledige lijst met beschikbare privileges vindt u in de officiële MySQL-documentatie.

Na het aanmaken van een gebruiker of het toekennen van privileges, raden sommige handleidingen aan om het commando FLUSH PRIVILEGES uit te voeren om de grant-tabellen opnieuw te laden en de nieuwe rechten toe te passen:

FLUSH PRIVILEGES;

Volgens de officiële documentatie van MySQL worden de toekenningstabellen echter automatisch opnieuw in het geheugen geladen wanneer u accountbeheersinstructies zoals GRANT gebruikt, dus FLUSH PRIVILEGES is niet strikt noodzakelijk. Dat gezegd hebbende, het uitvoeren ervan zal het systeem geen schade toebrengen.

Belangrijke opmerking: Door een MySQL-gebruiker de ALL PRIVILEGES-toestemming te verlenen, krijgt deze uitgebreide superuser-toegang, vergelijkbaar met de root-gebruiker. Deze opdracht ziet er als volgt uit:

> GRANT ALL PRIVILEGES ON *.* TO ‘techUser’@'localhost' WITH GRANT OPTION;

Dit toegangsniveau moet echter met voorzichtigheid worden gebruikt, omdat het de gebruiker volledige controle geeft over alle databases op de server. Iedereen met toegang tot dit gebruikersaccount kan elke database wijzigen of verwijderen.

Als u rechten wilt intrekken, is de syntaxis vergelijkbaar met het toekennen ervan, maar gebruikt u FROM in plaats van TO:

> REVOKE type_of_permission ON database_name.table_name FROM ‘username’@'host';

Om de huidige rechten van een gebruiker te bekijken, kunt u het volgende uitvoeren:

> SHOW GRANTS FOR ‘username’@'host';

Gebruiker verwijderen in MySQL

Als u een gebruiker wilt verwijderen, gebruikt u het commando DROP USER:

> DROP USER ‘gebruikersnaam’@'localhost';

Zodra u klaar bent met het configureren van de gebruiker en de rechten, kunt u de MySQL-client afsluiten:

> exit

Om in de toekomst in te loggen als uw nieuwe MySQL-gebruiker, gebruikt u het volgende commando:

# mysql -u techUser -p

De vlag -p vraagt u om het wachtwoord van de gebruiker.

Conclusie

In deze handleiding hebt u geleerd hoe u een gebruiker in MySQL kunt aanmaken en alle rechten aan een gebruiker in MySQL kunt toekennen. U kunt nu verder verkennen en experimenteren met verschillende rechteninstellingen voor uw gebruikers of u verdiepen in geavanceerde MySQL-configuraties.

Voor meer informatie over de basisprincipes van MySQL kunt u verdere bronnen en SQL-documentatie raadplegen.

BlueServers.com – Dedicated servers over de hele wereld!

BlueServers is een dynamische en gepassioneerde hostingprovider die zich toelegt op het leveren van uitzonderlijke online oplossingen.

Als u op zoek bent naar eersteklas hostingdiensten die worden ondersteund door een toegewijd team van experts, hoeft u niet verder te zoeken. Wij zijn er om ervoor te zorgen dat u de best mogelijke klantervaring krijgt. Ga vandaag nog met ons aan de slag en verbeter uw online aanwezigheid!

Share

Over de auteurs


scale 1
Ready to scale?

Start for free and unlock high-performance infrastructure with instant setup.

Get started arrow button

Help ons verbeteren — deel je feedback

Jouw mening helpt ons een betere service te bouwen.