MySQL权限-即使授予“ CREATE ROUTINE”权限也无法创建函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL权限-即使授予“ CREATE ROUTINE”权限也无法创建函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1238字,纯文字阅读大概需要2分钟。
内容图文
当连接到我的服务器(从另一台机器)时,我得到
Error Code: 1044 Access denied for user 'username'@'%' to database 'dbname'
当我尝试创建函数时.但是当我看我的权限
SHOW GRANTS FOR CURRENT_USER;
我懂了
'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE ROUTINE ON *.* TO ''username''@''%'' IDENTIFIED BY PASSWORD ''--stripped--'' WITH GRANT OPTION'
特别是,这包括CREATE ROUTINE.为什么我不能执行功能?我该如何更改呢?
解决方法:
我认为有一个CREATE FUNCTION与CREATE ROUTINE分开.但是无论哪种方式,由于您的用户看起来拥有100%的完全访问权限,因此您可以执行以下操作:
GRANT ALL PRIVILEGES ON *.* TO user@'%' INDENTIFIED BY 'password' WITH GRANT OPTION
但是,我会注意到最好将’%’设置为’localhost’并仅以这种方式从本地计算机(或至少是受信任的IP)访问数据库.缺乏安全性可能会给您带来麻烦.
绝对不要使用此用户名/密码从Web脚本连接到数据库!
编辑
我忘记了:例程和函数必须全局授予.新增.尝试将授予添加到表本身,这就是为什么它不起作用的原因.尝试:
GRANT ALTER ROUTINE,CREATE ROUTINE, EXECUTE ON * TO user@'%' IDENTIFIED BY 'password'
这里有一个更长的描述:http://dev.mysql.com/doc/refman/5.0/en/grant.html
内容总结
以上是互联网集市为您收集整理的MySQL权限-即使授予“ CREATE ROUTINE”权限也无法创建函数全部内容,希望文章能够帮你解决MySQL权限-即使授予“ CREATE ROUTINE”权限也无法创建函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。