Heim >Datenbank >MySQL-Tutorial >Benutzer- und Benutzerberechtigungskonfiguration unter MySQL-Datenbank_MySQL

Benutzer- und Benutzerberechtigungskonfiguration unter MySQL-Datenbank_MySQL

WBOY
WBOYOriginal
2016-09-09 08:13:411160Durchsuche

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 !

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn