Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So gewähren Sie dem Benutzer die Ausführung einer bestimmten gespeicherten Prozedur

Ja ... dies funktioniert wie erwartet, wenn Sie dem Benutzer den SELECT nicht gewähren Privileg auf mysql.proc entweder direkt oder indirekt, z. B. mit GRANT SELECT ON *.* TO ...

Ohne SELECT Berechtigung für diese Tabelle, kann ein Benutzer nur die Existenz gespeicherter Prozeduren und gespeicherter Funktionen sehen, wenn er andere Berechtigungen hat, wie EXECUTE .

Unter der Haube das Fehlen von SELECT auf mysql.proc verhindert auch, dass der Benutzer die Prozeduren sieht, auf die er über information_schema.routines keinen Zugriff hat Pseudo-Tabelle.

Sie sollten GRANT SELECT ON mysql.proc nicht benötigen um es dem Benutzer zu ermöglichen, Prozeduren oder Funktionen auszuführen ... und wenn ja, dann das scheint die Frage zu sein.