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:
$ sudo mysqlbashFor 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:
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';bashErstat 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:
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';bashNå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:
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';bashVæ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 tabelSELECT: Giver brugerne mulighed for at hente dataINSERT: Giver brugerne mulighed for at tilføje nye poster til tabellerUPDATE: Giver brugerne mulighed for at ændre eksisterende poster i tabellerDELETE: Giver brugerne mulighed for at slette tabelposterDROP: 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:
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'username'@'host';bashAutorisationer 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.
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO 'username'@'host';bashNå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:
mysql> FLUSH PRIVILEGES;bashDet 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:
mysql> REVOKE type_of_permission ON database_name.table_name FROM 'username'@'host';bashFor at vise de aktuelle tilladelser, som en bruger har, kan du bruge kommandoen SHOW GRANTS:
mysql> SHOW GRANTS FOR 'username'@'host';bashDu kan bruge kommandoen DROP til at slette en bruger:
mysql> DROP USER 'username'@'localhost';bashDu 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:
mysql> exitbash45d969e266677cabb44ceaf95418e879
a031a90e7a9561de7ffb4b2a6a2bdb0c