【问题标题】:How to grant a user access to all stored procedures on mysql?如何授予用户访问 mysql 上所有存储过程的权限?
【发布时间】:2016-05-20 01:42:51
【问题描述】:

我正在尝试以下方法:

DROP USER IF EXISTS 'my_user'@'%';
CREATE USER 'my_user'@'%' IDENTIFIED BY 'my_pwd';
GRANT EXECUTE ON PROCEDURE mydb.* TO 'my_user'@'%';

但我得到了错误:

Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used 0.000 sec

如果我明确命名一个过程:

DROP USER IF EXISTS 'my_user'@'%';
CREATE USER 'my_user'@'%' IDENTIFIED BY 'my_pwd';
GRANT EXECUTE ON PROCEDURE mydb.my_proc TO 'my_user'@'%';

然后它工作正常,但我想允许用户帐户访问 db 上的每个 proc,是否可以在不明确授予每个单独 proc 权限的情况下执行此操作?

【问题讨论】:

  • 试试这个GRANT EXECUTE ON mydb.* TO 'my_user'@'%';

标签: mysql stored-procedures permissions


【解决方案1】:

改用这个,它会起作用的:

GRANT EXECUTE ON mydb.* TO 'my_user'@'%';

【讨论】:

  • 查询和答案之间的区别是因为 mydb.* 不是一个过程,而是(可能)许多过程吗?手册中哪里提到了这个?
  • @user2338823 完全正确。如果您尝试GRANT EXECUTE ON PROCEDURE,它需要一个过程。我的命令授予数据库中每个过程的执行权限。
  • 手册中有提到这个吗?请问,你是怎么学的?
猜你喜欢
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-03
  • 2011-09-18
相关资源
最近更新 更多