Lad os se, hvordan man giver tilladelser (kaldet privilegier) til en bruger af MySQL-databasen
Som standard, når du opretter en ny MySQL-bruger ved hjælp af syntaksen
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
brugeren kan ikke gøre meget. Vi kan sige, at det faktisk ikke kan noget.
Det kan ikke læse data fra nogen eksisterende database, endsige ændre dataene. Og den kan ikke engang oprette en ny database.
For at få en bruger til at gøre noget, skal du tildele privilegier til det.
Du kan gøre det ved at bruge GRANT
kommando.
Vi kan bruge GRANT
, ved at bruge følgende tilladelsesnøgleord:
OPRET
DROP
SLET
INDSÆT
VÆLG
OPDATERING
ALLE PRIVILEGIER
Giv privilegium til at oprette nye databaser til en bruger
GRANT CREATE ON *.* TO '<username>'@'localhost';
Giv privilegier til en bruger til at oprette nye tabeller i en specifik database
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
Giv privilegium til at læse (forespørge) en specifik database til en bruger
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
Giv privilegium til at læse en specifik database tabel til en bruger
GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';
Giv privilegium til at indsætte, opdatere og slette rækker i en specifik database til en bruger
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
Giv privilegium til at slette tabeller i en bestemt database til en bruger
GRANT DROP ON <database>.* TO '<username>'@'localhost';
Giv privilegium til at slette databaser til en bruger
GRANT DROP ON *.* TO '<username>'@'localhost';
Giv alle rettigheder på en specifik database til en bruger
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
Giv alle rettigheder til en bruger
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Tilbagekald et privilegium
Eksempel på tilbagekaldelse af DROP
privilegium på
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
For at tilbagekalde alle rettigheder skal du køre:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Du kan visualisere privilegierne for en enkelt bruger ved at køre:
SHOW GRANTS FOR '<username>'@'localhost';