【问题标题】:Grant/Permit all MySQL User Defined Functions under a database to a user将数据库下的所有 MySQL 用户定义函数授予/允许用户
【发布时间】:2014-05-27 11:05:28
【问题描述】:

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

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'

【问题讨论】:

  • GRANT ALL ON DATABASE.* TO 'USERNAME'@'HOSTNAME'; DATABASE 应该改成其他名字
  • 这些 CAP 仅供参考。

标签: mysql permissions stored-functions


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 从安全角度来看,可能不希望对所有对象授予执行权限。有人可以评论一下授予对所有对象执行的任何安全问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 2014-04-24
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多