# Sådan oprettes brugere i MySQL

For at oprette en ny bruger i MySQL skal du have tilstrækkelige administratorrettigheder eller superbrugerrettigheder, der giver dig mulighed for at oprette brugerkonti og administrere autorisationer ud over adgang til den respektive database. Du skal også vide, hvilken type adgang den nye bruger har brug for, uanset om det er læse- eller skrivrettigheder eller endda administratorrettigheder.

## Sådan bruges MySQL’s `CREATE USER` -kommando

Når du installerer databasestyringssystemet, opretter MySQL automatisk en **root-konto**. Denne konto giver dig omfattende kontrol over dine databaser, tabeller og brugere, hvilket muliggør effektiv administration. Hvis du har brug for hjælp til installationsprocessen, indeholder vores MySQL-vejledning alle de nødvendige oplysninger.

Med din root-konto kan du oprette yderligere brugerkonti eller nye MySQL-brugere og tildele dem autorisationer. På Ubuntu-systemer med MySQL 5.7 eller nyere versioner er MySQL-rootbrugeren som standard konfigureret til at autentificere sig selv med `auth_socket` i stedet for et kodeord. Det betyder, at hvis navnet på den systembruger, der påkalder MySQL-klienten, adskiller sig fra navnet på den MySQL-bruger, der er angivet i kommandoen, skal du indsætte `sudo` foran kommandoen for at få adgang til din root-konto:

```bash
$ sudo mysql
```

For at oprette en ny bruger i MySQL skal du bruge kommandoen `CREATE USER`. Dette giver dig mulighed for at oprette en bruger med et bestemt brugernavn og en bestemt adgangskode:

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

Erstat `username` med et brugernavn efter eget valg. Under `host` skal du indtaste navnet på den host, hvorfra den nye bruger kan oprette forbindelse. Hvis brugeren kun skal have adgang til databasen fra din lokale Ubuntu-server, kan du indtaste `localhost`.

Når du vælger **godkendelsespluginet**, har du flere muligheder. Pluginet `auth_socket` tilbyder høj sikkerhed ved at kræve, at brugerne indtaster en adgangskode for at få adgang til databasen. Det begrænser dog fjernforbindelser, hvilket potentielt kræver en større indsats for eksterne programmer for at kunne interagere med MySQL. Alternativt kan du udelade delen `WITH authentication_plugin` af kommandoen for at godkende brugere ved hjælp af MySQL-standardpluginet `caching_sha2_password`. Sådan vil kommandoen se ud:

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

Når du har oprettet en ny bruger, skal du tildele vedkommende tilladelser.

## Sådan tildeles rettigheder til brugere i MySQL

Oprettelse og administration af brugerrettigheder er afgørende for at opretholde datasikkerheden i MySQL. Den generelle kommando til tildeling af brugerrettigheder er:

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

Værdien `PRIVILEGE` bestemmer, hvilke handlinger brugeren kan udføre i den angivne database og tabel. Du kan erstatte denne værdi med blandt andet følgende kommandoer:

- `CREATE`: Giver brugerne mulighed for at oprette en database eller tabel
- `SELECT`: Giver brugerne mulighed for at hente data
- `INSERT`: Giver brugerne mulighed for at tilføje nye poster til tabeller
- `UPDATE`: Giver brugerne mulighed for at ændre eksisterende poster i tabeller
- `DELETE`: Giver brugerne mulighed for at slette tabelposter
- `DROP`: Giver brugerne mulighed for at slette hele databasetabeller

Du kan også tildele nye brugere flere rettigheder på én gang. Når du gør det, skal du adskille rettighederne med et komma:

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

**Autorisationer til alle databaser eller tabeller** kan også gives med en enkelt kommando ved at indtaste `*` i stedet for de enkelte database- og tabelnavne. F.eks. giver følgende kommando en bruger autorisation til at søge data (`SELECT`), tilføje nye poster (`INSERT`) og ændre eksisterende poster (`UPDATE`) i alle databaser og tabeller.

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

Når du har udført de `CREATE USER` eller `GRANT` kommandoer i MySQL, kan du bruge kommandoen `FLUSH PRIVILEGES` til at opdatere databasen. Dette genindlæser autorisationstabellerne og sikrer, at de nye autorisationer træder i kraft:

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

Det er dog vigtigt kun at give brugerne de rettigheder, de har brug for. Hvis du giver en bruger fuld kontrol, kan det udgøre en **stor sikkerhedsrisiko**.

## Sådan tilbagekaldes brugerrettigheder fra brugere i MySQL

Kommandoen `REVOKE` bruges til at fjerne brugerrettigheder i MySQL. Syntaksen ligner den for kommandoen `GRANT`. Med denne kommando skal du dog bruge `FROM` i stedet for `TO`:

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

For at vise de aktuelle tilladelser, som en bruger har, kan du bruge kommandoen `SHOW GRANTS`:

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

Du kan bruge kommandoen `DROP` til at slette en bruger:

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

Du skal være meget forsigtig, når du sletter brugere, især brugere med administratorrettigheder. Sørg for, at du kun fjerner brugere, du virkelig ønsker at slette, for at undgå utilsigtet datatab.

Når du er færdig med at oprette nye MySQL-brugere og tildele dem rettigheder, kan du afslutte MySQL-klienten:

```bash
mysql> exit
```


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/mysql-opret-bruger/](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/mysql-opret-bruger/) for AI/LLM consumption.