Да... това работи според очакванията, ако не предоставите на потребителя SELECT
привилегия на mysql.proc
таблица, пряко или косвено, като например с GRANT SELECT ON *.* TO ...
Без SELECT
разрешение за тази таблица, потребителят може да види само съществуването на съхранени процедури и съхранени функции, когато имат други разрешения, като EXECUTE
.
Под капака, липсата на SELECT
на mysql.proc
също не позволява на потребителя да вижда процедурите, до които няма достъп чрез information_schema.routines
псевдо-таблица.
Не трябва да се налага да GRANT SELECT ON mysql.proc
за да позволи на потребителя да изпълнява процедури или функции... и ако го направите, тогава това изглежда като въпроса.