sql >> Database teknologi >  >> RDS >> Mysql

MySQL-brugertilladelser

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';

  1. Sådan rettes MySQL JDBC 08001-databaseforbindelsesfejl

  2. Lær, hvordan du bruger CASE-sætning i SQL

  3. Hvordan gemmer man filnavnet i databasen med anden info, mens man uploader billedet til serveren ved hjælp af PHP?

  4. Sådan får du en liste over datoer mellem to datoer i mysql select-forespørgsel