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.