Laten we eens kijken hoe u machtigingen (genaamd privileges) kunt verlenen aan een gebruiker van de MySQL-database
Standaard wanneer u een nieuwe MySQL-gebruiker aanmaakt met behulp van de syntaxis
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
de gebruiker kan niet veel doen. We kunnen zeggen dat het eigenlijk nergens toe kan.
Het kan geen gegevens uit een bestaande database lezen, laat staan de gegevens wijzigen. En het kan niet eens een nieuwe database maken.
Om een gebruiker iets te laten doen, moet je rechten verlenen ernaar toe.
U kunt dit doen met de GRANT
commando.
We kunnen GRANT <permission>
. gebruiken , met behulp van de volgende toestemmingssleutelwoorden:
CREATE
DROP
DELETE
INSERT
SELECT
UPDATE
ALL PRIVILEGES
Geef privilege om nieuwe databases aan te maken aan een gebruiker
GRANT CREATE ON *.* TO '<username>'@'localhost';
Bevoegdheden geven aan een gebruiker om nieuwe tabellen te maken in een specifieke database
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
Geef privilege om een specifieke database te lezen (opvragen) aan een gebruiker
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
Geef privilege om een specifieke database tabel te lezen aan een gebruiker
GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';
Bevoegdheid geven om rijen in een specifieke database in te voegen, bij te werken en te verwijderen een gebruiker
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
Geef een gebruiker het recht om tabellen in een specifieke database te verwijderen
GRANT DROP ON <database>.* TO '<username>'@'localhost';
Geef een gebruiker het recht om databases te verwijderen
GRANT DROP ON *.* TO '<username>'@'localhost';
Geef alle rechten op een specifieke database aan een gebruiker
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
Geef alle rechten aan een gebruiker
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Een privilege intrekken
Voorbeeld om de DROP
. in te trekken privilege op <database>
:
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
Voer het volgende uit om alle rechten in te trekken:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
U kunt de privileges van een enkele gebruiker visualiseren door het volgende uit te voeren:
SHOW GRANTS FOR '<username>'@'localhost';