Jeg ønsker at oprette en ny bruger i MySQL og give den fuld adgang til en database, f.eks. dbTest
, som jeg opretter med en kommando som create database dbTest;
. Hvad ville være MySQL-kommandoerne til at gøre det?
Prøv dette for at oprette brugeren:
CREATE USER 'user'@'hostname';
Prøv dette for at give den adgang til databasen dbTest
:
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
Hvis du kører koden/webstedet med adgang til MySQL på den samme maskine, vil værtsnavnet være localhost.
Nu, den nedbrydning ned.
GRANT
- Dette er kommandoen, der bruges til at oprette brugere og tildele rettigheder til databaser, tabeller osv.
ALL PRIVILEGES
- Dette fortæller den, at brugeren vil have alle standardrettigheder. Dette omfatter dog ikke rettighederne til at bruge kommandoen GRANT.
dbtest.*
- Dette instruerer MySQL om at anvende disse rettigheder til brug i hele dbtest-databasen. Du kan erstatte *'en med specifikke tabelnavne eller lagerrutiner, hvis du ønsker det.
TO 'user'@'hostname'
- 'user' er brugernavnet på den brugerkonto, du opretter. Bemærk: Du skal have de enkelte anførselstegn med. 'hostname' fortæller MySQL hvilke hosts brugeren kan forbinde fra. Hvis du kun vil have den fra den samme maskine, skal du bruge localhost
IDENTIFIED BY 'password'
- Som du nok har gættet, sætter dette passwordet for denne bruger.
Log ind på MySQL:
mysql -u root
Opret og giv nu
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
Alternativt, hvis du blot ønsker at give fuld ubegrænset adgang til en database (f.eks. på din lokale maskine til en testinstans), kan du give adgang til den anonyme bruger på følgende måde:
GRANT ALL PRIVILEGES ON dbTest.* To ''@'hostname'
Dette er fint til junk data under udvikling. Gør det ikke med noget, du holder af.