我想让一个用户在MySQL数据库中运行存储过程时,只有在存储过程级别上才能具备权限,而不是允许用户在数据库中执行任何存储过程。我尝试执行以下代码:
GRANT EXECUTE ON myDB.spName TO 'TestUser'@'localhost';
但我一直收到以下错误:非法的 GRANT/REVOKE 命令,请参阅手册查看可用的权限。
我尝试将其更改为以下内容:
GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost';
我得到不同的错误消息:在用户表中找不到任何匹配行。
我很困惑我错在哪里了?
此外,在MySQL Workbench上,我似乎无法通过GUI在存储过程级别上授予权限。这是正确的还是我漏了什么?
提前致谢。
GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost' IDENTIFIED BY 'password';
,意思是授予用户'TestUser'@'localhost'对'myDB.spName'存储过程的执行权限,并使用密码'password'进行身份验证。 - sakhunzai