如何向特定用户授予数据库下所有用户定义函数的执行权限?新用户可以执行/运行其他用户定义的所有功能。
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 EXECUTE
ON *.*
TO 'myuser'@'localhost';
此替代方案允许访问单个 MySQL user defined function对于单个用户:
GRANT EXECUTE
ON FUNCTION `mydatabase`.`myuserdefunc`
TO 'myuser'@'localhost';
注意:mydatabase
、myuser
和 myuserdefunc
;仅作为示例,并将替换为适合您项目的值。
关于mysql - 向用户授予/允许数据库下的所有 MySQL 用户定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23887794/