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.