授予/允许用户在数据库下的所有MySQL用户定义函数

时间:2014-05-27 11:05:28

标签: mysql permissions stored-functions

如何将数据库下的所有用户定义函数的执行权限授予特定用户?新用户可以执行/运行其他一些用户定义的所有功能。

1. GRANT ALL ON DATABASE.* TO 'USERNAME'@'HOSTNAME';
2. GRANT EXECUTE ON DATABASE.* TO 'USERNAME'@'HOSTNAME';

这两次尝试都未能允许新用户。以下呼叫以错误结束。

SELECT f_custom_function();

相应的错误消息:

Query : ____
Error Code : 1370
execute command denied to user 'USERNAME'@'HOSTNAME' for routine 'DATABASE.f_custom_function'

1 个答案:

答案 0 :(得分:0)

以下内容将授予一个用户对一个数据库中的所有对象的执行特权:

GRANT EXECUTE
  ON *.*
  TO 'myuser'@'localhost';

此替代方法允许单个用户访问单个MySQL user defined function

GRANT EXECUTE
  ON FUNCTION `mydatabase`.`myuserdefunc`
  TO 'myuser'@'localhost';

注意:mydatabasemyusermyuserdefunc;仅作为示例,并将其替换为适合您的项目的值。