Zobaczmy, jak przyznać uprawnienia (zwane uprawnieniami) użytkownikowi bazy danych MySQL
Domyślnie podczas tworzenia nowego użytkownika MySQL przy użyciu składni
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
użytkownik nie może wiele zrobić. Właściwie możemy powiedzieć, że nie może do niczego.
Nie może odczytywać danych z żadnej istniejącej bazy danych, nie mówiąc już o modyfikowaniu danych. I nie może nawet stworzyć nowej bazy danych.
Aby zmusić użytkownika do zrobienia czegokolwiek, musisz nadać uprawnienia do niego.
Możesz to zrobić za pomocą GRANT
polecenie.
Możemy użyć GRANT <permission>
, używając następujących słów kluczowych uprawnień:
CREATE
DROP
DELETE
INSERT
SELECT
UPDATE
ALL PRIVILEGES
Przyznaj użytkownikowi uprawnienia do tworzenia nowych baz danych
GRANT CREATE ON *.* TO '<username>'@'localhost';
Nadaj użytkownikowi uprawnienia do tworzenia nowych tabel w określonej bazie danych
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
Przyznaj użytkownikowi uprawnienia do odczytu (zapytania) określonej bazy danych
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
Przyznaj uprawnienia do wstawiania, aktualizowania i usuwania wierszy w określonej bazie danych, aby użytkownik
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
Przyznaj użytkownikowi uprawnienia do usuwania tabel z określonej bazy danych
GRANT DROP ON <database>.* TO '<username>'@'localhost';
Przyznaj użytkownikowi uprawnienia do usuwania baz danych
GRANT DROP ON *.* TO '<username>'@'localhost';
Nadaj użytkownikowi wszystkie uprawnienia do określonej bazy danych
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
Nadaj wszystkie uprawnienia użytkownikowi
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Odwołaj przywilej
Przykład odwołania DROP
przywilej <database>
:
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
Aby cofnąć wszystkie uprawnienia, uruchom:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Możesz zwizualizować uprawnienia pojedynczego użytkownika, uruchamiając:
SHOW GRANTS FOR '<username>'@'localhost';