Ano... toto funguje podle očekávání, pokud uživateli neudělíte SELECT
oprávnění na mysql.proc
tabulky, ať už přímo nebo nepřímo, například pomocí GRANT SELECT ON *.* TO ...
Bez SELECT
oprávnění v této tabulce, uživatel může vidět existenci uložených procedur a uložených funkcí pouze tam, kde má jiná oprávnění, jako je EXECUTE
.
Pod kapotou chybí SELECT
na mysql.proc
také zabraňuje uživateli vidět procedury, ke kterým nemá přístup prostřednictvím information_schema.routines
pseudotabulka.
Neměli byste potřebovat GRANT SELECT ON mysql.proc
aby uživatel mohl spouštět procedury nebo funkce... a pokud ano, pak to vypadá jako otázka.