如何将数据库下的所有用户定义函数的执行权限授予特定用户?新用户可以执行/运行其他一些用户定义的所有功能。
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'
答案 0 :(得分:0)
以下内容将授予一个用户对一个数据库中的所有对象的执行特权:
GRANT EXECUTE
ON *.*
TO 'myuser'@'localhost';
此替代方法允许单个用户访问单个MySQL user defined function:
GRANT EXECUTE
ON FUNCTION `mydatabase`.`myuserdefunc`
TO 'myuser'@'localhost';
注意:mydatabase
,myuser
和myuserdefunc
;仅作为示例,并将其替换为适合您的项目的值。