Heim >Datenbank >MySQL-Tutorial >Benutzer- und Benutzerberechtigungskonfiguration unter MySQL-Datenbank_MySQL
Problem: Bei der Verwendung eines von einem bestimmten Autor geschriebenen Remote-Tools zur Verwaltung der MySQL-Datenbank habe ich festgestellt, dass alle Daten normal angezeigt werden können, Vorgänge wie Löschen und Ändern jedoch nicht ausgeführt werden können.
Idee: Die Informationen in der Datenbank können aus der Ferne gelesen werden, was darauf hinweist, dass der aktuelle Host eine Fernverbindung zur Datenbank herstellen kann. Diese Vorgänge wie Löschen und Ändern können jedoch nicht ausgeführt werden, was darauf hinweist, dass dem aktuellen Remote-Benutzer einige Berechtigungen nicht gewährt werden.
Lösung:
Aktuelle Benutzerberechtigungen anzeigen
show grants for username
Zeigt die Berechtigungen unter dem aktuellen Benutzer an: Auswählen, Einfügen, Aktualisieren, Löschen
GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*BB318072E265C419B3E1E19A4DAD1FA969B9B4D4' //只可以在本地登陆的 不能操作的用户 GRANT SELECT, INSERT, UPDATE, DELETE ON `dbName`.* TO 'usename'@'host' //此用户拥有select/insert/update/delelte权限
Es scheint, dass es die Berechtigung zum Löschen und Ändern haben sollte, aber es kann nicht mit dem Remote-Tool bedient werden.
Nach sorgfältiger Untersuchung habe ich festgestellt, dass der Betrieb der von diesem Tool geschriebenen Datenbank grundsätzlich keine relevanten Berechtigungen für gespeicherte Prozeduren und gespeicherte Funktionen gewährt
Fügen Sie daher dem Benutzer Berechtigungen für gespeicherte Prozeduren und gespeicherte Funktionen hinzu
GRANT DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `dbName`.* TO 'username'@'host'
Benutzerberechtigungen anzeigen sind
GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*938D2D224D12DAD427AB953B931EA6DF0CF0656A' GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `dbName`.* TO 'username'@'host'
Verwenden Sie das Remote-Tool erneut und verwenden Sie es korrekt
--------------------------------- -------------------------------------------------- -- ----
Anhang: Benutzerdefinierte Datenbankfunktion importieren
mysqldump -uroot -ntd -R dbName > dbName.sql
Beim Import
wurde eine Fehlermeldung gefunden
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
Fehlermeldung 1481: Beim Importieren einer benutzerdefinierten Funktion entspricht dies dem Erstellen einer benutzerdefinierten Funktion in der Datenbank. Da jedoch ein Sicherheitsparameter nicht aktiviert ist, ist log_bin_trust_function_creators standardmäßig auf 0 (d. h. AUS) eingestellt,
erlaubt keine Synchronisierung von Funktionen (d. h. die Erstellung von Funktionen ist nicht zulässig). Wenn Sie diesen Parameter aktivieren, können Sie ihn erfolgreich erstellen.
Sehen Sie sich den log_bin_trust_function_creators-Wert an
> show variables like "%func%" -------------------------------------- |Variable_name |Value| --------------------------------|----- |log_bin_trust_function_creators| OFF | --------------------------------------
Wenn der Wert AUS ist, bedeutet dies, dass die Erstellung von Funktionen nicht zulässig ist. Ändern Sie diesen Wert und Sie können
> set global log_bin_trust_function_creators=1; >show variables like "%func%" -------------------------------------- |Variable_name |Value| --------------------------------|----- |log_bin_trust_function_creators| ON |
Hinweis: Denken Sie daran, den Wert nach Abschluss des Imports wieder auf 0 (d. h. AUS) zu setzen. Die spezifischen Gründe werden nicht näher erläutert.
Das Obige ist die vom Herausgeber eingeführte Benutzer- und Benutzerberechtigungskonfiguration. Ich hoffe, dass sie Ihnen hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten !