Váš druhý pokus je správný přístup:
GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost';
ale pokud to nefunguje, ověřte ...
a) vy (uživatel, od kterého spouštíte všechny tyto příkazy) máte práva udělení [tj. S MOŽNOSTÍ GRANT]. Pokud jste root, máte práva k udělení.
b) existuje uživatel, kterému udělujete oprávnění ke spuštění, např.
select user from mysql.user where user like 'test%';
Pokud ne, vytvořte uživatele např.
CREATE USER 'TestUser'@'localhost' IDENTIFIED BY 'passwordxxxx';
#depending on your needs
GRANT SELECT,DELETE,UPDATE PRIVILEGES ON myDb.* TO 'TestUser'@'localhost';
Doufám, že to pomůže :)