Sim... isso funciona como esperado se você não conceder ao usuário o
SELECT
privilégio no mysql.proc
tabela, direta ou indiretamente, como com GRANT SELECT ON *.* TO ...
Sem
SELECT
permissão nesta tabela, um usuário só pode ver a existência de procedimentos armazenados e funções armazenadas onde ele tem outras permissões, como EXECUTE
. Sob o capô, a falta de
SELECT
em mysql.proc
também impede que o usuário veja os procedimentos aos quais não tem acesso através do information_schema.routines
pseudo-tabela. Você não deve precisar
GRANT SELECT ON mysql.proc
para permitir que o usuário execute procedimentos ou funções... e se você fizer isso, então isso parece a pergunta.