# Hoe gebruikers aanmaken in MySQL

Om een nieuwe gebruiker in MySQL aan te maken, hebt u voldoende beheerdersrechten of superuserrechten nodig waarmee u gebruikersaccounts kunt aanmaken en autorisaties kunt beheren, naast toegang tot de betreffende database. U moet ook weten welk type toegang de nieuwe gebruiker nodig heeft, of dat nu leesrechten, schrijfrechten of zelfs beheerdersrechten zijn.

## Hoe gebruik je het `CREATE USER` -commando van MySQL?

Bij het installeren van het databasebeheersysteem genereert MySQL automatisch een **root-account**. Dit account geeft u uitgebreide controle over uw databases, tabellen en gebruikers, waardoor u efficiënt kunt beheren. Als u hulp nodig hebt bij het installatieproces, vindt u alle essentiële informatie in onze MySQL-handleiding.

Met uw root-account kunt u extra gebruikersaccounts of nieuwe MySQL-gebruikers aanmaken en hen autorisaties toewijzen. Op Ubuntu-systemen met MySQL 5.7 of nieuwere versies is de MySQL-rootgebruiker standaard geconfigureerd om zichzelf te authenticeren met de `auth_socket` in plaats van met een wachtwoord. Dit betekent dat als de naam van de systeemgebruiker die de MySQL-client aanroept, verschilt van de naam van de MySQL-gebruiker die in de opdracht is opgegeven, u de opdracht moet voorafgaan met `sudo` om toegang te krijgen tot uw root-account:

```bash
$ sudo mysql
```

Om een nieuwe gebruiker aan te maken in MySQL, gebruikt u het commando `CREATE USER`. Hiermee kunt u een gebruiker aanmaken met een specifieke gebruikersnaam en wachtwoord:

```bash
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
```

Vervang `username` door een gebruikersnaam naar keuze. Voer onder `host` de naam in van de host waarmee de nieuwe gebruiker verbinding kan maken. Als de gebruiker alleen toegang tot de database mag hebben vanaf uw lokale Ubuntu-server, kunt u `localhost` invoeren.

Bij het kiezen van **de authenticatieplugin** hebt u verschillende opties. De `auth_socket` biedt een hoge mate van beveiliging door gebruikers te vragen een wachtwoord in te voeren voor toegang tot de database. Deze plugin beperkt echter externe verbindingen, waardoor externe programma’s mogelijk meer moeite moeten doen om met MySQL te communiceren. Als alternatief kunt u het `WITH authentication_plugin` van de opdracht weglaten om gebruikers te authenticeren met behulp van de MySQL-standaardplugin `caching_sha2_password`. De opdracht zou er dan als volgt uitzien:

```bash
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
```

Zodra u een nieuwe gebruiker hebt aangemaakt, moet u deze gebruiker autorisaties toewijzen.

## Hoe rechten toewijzen aan gebruikers in MySQL

Het aanmaken en beheren van gebruikersrechten is essentieel voor het handhaven van de gegevensbeveiliging in MySQL. Het algemene commando voor het toewijzen van gebruikersrechten is:

```bash
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
```

De waarde `PRIVILEGE` bepaalt welke acties de gebruiker kan uitvoeren in de opgegeven database en tabel. U kunt deze waarde onder andere vervangen door de volgende opdrachten:

- `CREATE`: Hiermee kunnen gebruikers een database of tabel maken
- `SELECT`: Hiermee kunnen gebruikers gegevens ophalen
- `INSERT`: Hiermee kunnen gebruikers nieuwe vermeldingen aan tabellen toevoegen
- `UPDATE`: Hiermee kunnen gebruikers bestaande vermeldingen in tabellen wijzigen
- `DELETE`: Hiermee kunnen gebruikers tabelvermeldingen verwijderen
- `DROP`: Gebruikers kunnen volledige databasetabellen verwijderen

U kunt nieuwe gebruikers ook meerdere rechten tegelijk toekennen. Wanneer u dit doet, moet u de rechten met een komma van elkaar scheiden:

```bash
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';
```

**Autorisaties voor alle databases of tabellen** kunnen ook in één enkele opdracht worden verleend door `*` in te voeren in plaats van de individuele database- en tabelnamen. De volgende opdracht geeft een gebruiker bijvoorbeeld de autorisatie om gegevens op te vragen (`SELECT`), nieuwe vermeldingen toe te voegen (`INSERT`) en bestaande vermeldingen te wijzigen (`UPDATE`) in alle databases en tabellen.

```bash
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';
```

Nadat u de `CREATE USER` of `GRANT` commando’s in MySQL hebt uitgevoerd, kunt u het `FLUSH PRIVILEGES` commando gebruiken om de database bij te werken. Hierdoor worden de autorisatietabellen opnieuw geladen, zodat de nieuwe autorisaties van kracht worden:

```bash
mysql> FLUSH PRIVILEGES;
```

Het is echter belangrijk om gebruikers alleen de autorisaties te geven die ze nodig hebben. Als u een gebruiker volledige controle geeft, kan dit een **groot veiligheidsrisico** vormen.

## Hoe gebruikersrechten van gebruikers in MySQL intrekken

Het commando `REVOKE` wordt gebruikt om gebruikersrechten in MySQL te verwijderen. De syntaxis is vergelijkbaar met die van het commando `GRANT`. Bij dit commando moet u echter `FROM` gebruiken in plaats van `TO`:

```bash
mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';
```

Om de huidige autorisaties van een gebruiker weer te geven, kunt u het commando `SHOW GRANTS` gebruiken:

```bash
mysql> SHOW GRANTS FOR 'username'@'host';
```

Je kunt het commando `DROP` gebruiken om een gebruiker te verwijderen:

```bash
mysql> DROP USER 'username'@'localhost';
```

Wees uiterst voorzichtig bij het verwijderen van gebruikers, vooral gebruikers met beheerdersrechten. Zorg ervoor dat u alleen gebruikers verwijdert die u echt wilt verwijderen om onbedoeld gegevensverlies te voorkomen.

Zodra u klaar bent met het aanmaken van nieuwe MySQL-gebruikers en het toekennen van rechten, kunt u de MySQL-client afsluiten:

```bash
mysql> exit
```


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/mysql-create-user/](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/mysql-create-user/) for AI/LLM consumption.