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:
$ sudo mysqlbashFor å 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';bashErstatt 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';bashNå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';bashVerdien 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 tabellSELECT: Lar brukerne hente dataINSERT: Lar brukerne legge til nye oppføringer i tabellerUPDATE: Lar brukerne endre eksisterende oppføringer i tabellerDELETE: Lar brukerne slette oppføringer i tabellerDROP: 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';bashAutorisasjoner 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';bashNå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;bashDet 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';bashFor å vise de gjeldende autorisasjonene som en bruker har, kan du bruke kommandoen SHOW GRANTS:
mysql> SHOW GRANTS FOR 'username'@'host';bashDu kan bruke kommandoen DROP til å slette en bruker:
mysql> DROP USER 'username'@'localhost';bashDu 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> exitbash45d969e266677cabb44ceaf95418e879
bf812055a1ab3935cb15b43974c56856
01524320532809020958f4b5d042b02d
1b67cfdd89611352c3472ca463d3de9f
26285f4721b20b07e60196b9449d21e7
b7f8469a4592c8d2235cdd9e51f76293
274b429fec0a74011340bff0ebfa3c09