# Hvordan opprette brukere i MySQL

For å opprette en ny bruker i MySQL må du ha tilstrekkelige administratorrettigheter eller superbrukerrettigheter som gir deg mulighet til å opprette brukerkontoer og administrere autorisasjoner, i tillegg til tilgang til den aktuelle databasen. Du må også vite hvilken type tilgang den nye brukeren trenger, enten det er leserettigheter, skriverettigheter eller til og med administratorrettigheter.

## Hvordan bruke MySQLs `CREATE USER` -kommando

Når du installerer databasestyringssystemet, oppretter MySQL automatisk en **root-konto**. Denne kontoen gir deg full kontroll over databaser, tabeller og brukere, slik at du kan administrere dem på en effektiv måte. Hvis du trenger hjelp med installasjonsprosessen, finner du all nødvendig informasjon i vår MySQL-veiledning.

Med root-kontoen din kan du opprette flere brukerkontoer eller nye MySQL-brukere og tildele dem autorisasjoner. På Ubuntu-systemer med MySQL 5.7 eller nyere versjoner er MySQL-rootbrukeren som standard konfigurert til å autentisere seg med `auth_socket` i stedet for et passord. Dette betyr at hvis navnet på systembrukeren som påkaller MySQL-klienten, er forskjellig fra navnet på MySQL-brukeren som er angitt i kommandoen, må du sette `sudo` foran kommandoen for å få tilgang til root-kontoen din:

```bash
$ sudo mysql
```

For å opprette en ny bruker i MySQL, bruk kommandoen `CREATE USER`. Dette lar deg opprette en bruker med et spesifikt brukernavn og passord:

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

Erstatt `username` med et brukernavn etter eget valg. Under `host` skriver du inn navnet på verten som den nye brukeren kan koble seg til fra. Hvis brukeren kun skal ha tilgang til databasen fra din lokale Ubuntu-server, kan du skrive inn `localhost`.

Når du velger **autentiseringsplugin**, har du flere alternativer. Plugin `auth_socket` tilbyr høy sikkerhet ved å kreve at brukerne oppgir et passord for å få tilgang til databasen. Det begrenser imidlertid eksterne tilkoblinger, noe som potensielt kan kreve mer innsats for eksterne programmer for å kommunisere med MySQL. Alternativt kan du utelate delen `WITH authentication_plugin` av kommandoen for å autentisere brukere ved hjelp av MySQL-standardplugin `caching_sha2_password`. Kommandoen vil da se slik ut:

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

Når du har opprettet en ny bruker, må du tildele vedkommende autorisasjoner.

## Hvordan tildele rettigheter til brukere i MySQL

Opprettelse og administrasjon av brukerrettigheter er avgjørende for å opprettholde datasikkerheten i MySQL. Den generelle kommandoen for tildeling av brukerrettigheter er:

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

Verdien `PRIVILEGE` bestemmer hvilke handlinger brukeren kan utføre i den angitte databasen og tabellen. Du kan erstatte denne verdien med blant annet følgende kommandoer:

- `CREATE`: Lar brukerne opprette en database eller tabell
- `SELECT`: Lar brukerne hente data
- `INSERT`: Lar brukerne legge til nye oppføringer i tabeller
- `UPDATE`: Lar brukerne endre eksisterende oppføringer i tabeller
- `DELETE`: Lar brukerne slette oppføringer i tabeller
- `DROP`: Lar brukerne slette hele databasetabeller

Du kan også gi nye brukere flere privilegier samtidig. Når du gjør dette, må du skille privilegiene med komma:

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

**Autorisasjoner for alle databaser eller tabeller** kan også gis med en enkelt kommando ved å skrive inn `*` i stedet for de enkelte database- og tabellnavnene. For eksempel gir følgende kommando en bruker autorisasjon til å søke etter data (`SELECT`), legge til nye oppføringer (`INSERT`) og endre eksisterende oppføringer (`UPDATE`) i alle databaser og tabeller.

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

Når du har utført de `CREATE USER` eller `GRANT` kommandoene i MySQL, kan du bruke kommandoen `FLUSH PRIVILEGES` til å oppdatere databasen. Dette laster inn autorisasjonstabellene på nytt og sikrer at de nye autorisasjonene trer i kraft:

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

Det er imidlertid viktig å bare gi brukerne de autorisasjonene de trenger. Hvis du gir en bruker full kontroll, kan dette utgjøre en **høy sikkerhetsrisiko**.

## Hvordan tilbakekalle brukerrettigheter fra brukere i MySQL

Kommandoen `REVOKE` brukes til å fjerne brukerrettigheter i MySQL. Syntaksen er lik den for kommandoen `GRANT`. Med denne kommandoen må du imidlertid bruke `FROM` i stedet for `TO`:

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

For å vise de gjeldende autorisasjonene som en bruker har, kan du bruke kommandoen `SHOW GRANTS`:

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

Du kan bruke kommandoen `DROP` til å slette en bruker:

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

Du bør være ekstremt forsiktig når du sletter brukere, spesielt brukere med administratorrettigheter. Sørg for at du bare fjerner brukere du virkelig ønsker å slette, for å unngå utilsiktet tap av data.

Når du er ferdig med å opprette nye MySQL-brukere og gi dem rettigheter, kan du avslutte MySQL-klienten:

```bash
mysql> exit
```


This is a markdown version of: [https://www.ionos.com/nb-no/digitalguide/nettsteder/webutvikling/mysql-opprett-bruker/](https://www.ionos.com/nb-no/digitalguide/nettsteder/webutvikling/mysql-opprett-bruker/) for AI/LLM consumption.