Ja... detta fungerar som förväntat om du inte ger användaren SELECT
privilegium på mysql.proc
tabell, antingen direkt eller indirekt, t.ex. med GRANT SELECT ON *.* TO ...
Utan SELECT
behörighet på denna tabell kan en användare endast se existensen av lagrade procedurer och lagrade funktioner där de har andra behörigheter, som EXECUTE
.
Under huven, avsaknaden av SELECT
på mysql.proc
hindrar också användaren från att se de procedurer de inte har tillgång till via information_schema.routines
pseudotabell.
Du borde inte behöva GRANT SELECT ON mysql.proc
för att göra det möjligt för användaren att utföra procedurer eller funktioner... och om du gör det, att verkar vara frågan.