我的MySQL 5.5.60服务器中有一个名为“user_creator”的用户 . 创建此用户是为了添加新用户和数据库并为这些新创建的用户授予权限(因此和“admin”,但权限较少) .

授予此“user_creator”的以下权限:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE USER, EXECUTE, TRIGGER ON *.* TO 'user_creator'@'x.x.x.x' IDENTIFIED BY PASSWORD <secret> WITH GRANT OPTION

这种配置效果很好 . 如果“user_creator”用...创建一个新用户

GRANT SELECT, INSERT, UPDATE, DELETE ON foo.* TO 'foo_01'@'x.x.x.x' IDENTIFIED BY 'foo';

... 有用 .

但是,如果“user_creator”想要向新用户授予EXECUTE特权,例如

GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON foo.* TO 'foo_01'@'x.x.x.x' IDENTIFIED BY 'foo';

发生错误:

第1行的错误1044(42000):用户'user_creator'@'x.x.x.x'拒绝访问数据库'foo';

有没有人知道“user_creator”需要为新创建的用户授予EXECUTE特权?我不想使用root用户或root用户来执行此操作 .