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:

$ sudo mysql
bash

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

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

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:

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

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:

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

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:

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

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.

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

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:

mysql> FLUSH PRIVILEGES;
bash

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:

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

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

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

Du kan bruke kommandoen DROP til å slette en bruker:

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

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:

mysql> exit
bash

45d969e266677cabb44ceaf95418e879

bf812055a1ab3935cb15b43974c56856

01524320532809020958f4b5d042b02d

1b67cfdd89611352c3472ca463d3de9f

26285f4721b20b07e60196b9449d21e7

b7f8469a4592c8d2235cdd9e51f76293

274b429fec0a74011340bff0ebfa3c09

Go to Main Menu