我现在使用mysqldump进行数据库备份,我想重新创建一个用户专门用来备份,但是创建完用户后,在备份的过程中出现这样的错误提示,mysqldump: backupsso has insufficent privileges to SHOW CREATE FUNCTION `fdm_exp_rank`!,应该是说对函数没有权限,但是我查看了官方文档,并没有看到哪个权限是用于函数的,以下是我创建用户的语句,请教还少了什么权限:
GRANT SELECT,LOCK TABLES,SHOW VIEW,EXECUTE,CREATE ROUTINE
ON internaltest0.* TO backupsso@"%" IDENTIFIED BY "backupsso";
GRANT SELECT,LOCK TABLES,SHOW VIEW,EXECUTE,CREATE ROUTINE
ON internaltest0.* TO backupsso@"%" IDENTIFIED BY "backupsso";
解决方案 »
- 调用存储过程错误
- 这个存储过程如何赋值
- mysql怎么写触发器和交叉表
- 筛选数据集
- 关于Mysql中的建数据库问题!!
- 将重复了M次的记录显示N次的sql语句怎么写
- mysql不稳定,怎么解决?
- postgresQL的连接问题,本人第一次使用,不知道如果连接,请高手指点
- http://www.8848home.com/xnzj.asp 同步支持ASP/PHP/CGI,不限空间和流量,可选MS SQL或MySQL的一种,1000/年。可以考虑吗?
- 不能连接mysql server (Win2000 iis中),着急呀!谢谢各位了
- 急急急!!!两个进程同时用mysql_real_query对同一个记录执行update会不会有问题啊?
- group by 后order by排序问题
GRANT SELECT, RELOAD, LOCK_TABLES, REPL_CLIREPL_CLIENT
ON internaltest0.* TO backupsso@"%" IDENTIFIED BY "backupsso";
有create function权限的, 手册:
13.5.1.3. GRANT和REVOKE语法
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] {tbl_name | * | *.* | db_name.*}
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
[REQUIRE
NONE |
[{SSL| X509}]
[CIPHER 'cipher' [AND]]
[ISSUER 'issuer' [AND]]
[SUBJECT 'subject']]
[WITH with_option [with_option] ...]object_type =
TABLE
| FUNCTION
| PROCEDUREwith_option =
GRANT OPTION
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS countREVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON [object_type] {tbl_name | * | *.* | db_name.*}
FROM user [, user] ...REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
mysqldump: backupsso has insufficent privileges to SHOW CREATE FUNCTION `fdm_exp_rank`!我的权限语句:
GRANT SELECT,LOCK TABLES,SHOW VIEW,EXECUTE,CREATE ROUTINE,ALTER ROUTINE
ON internaltest0.* TO backupsso@"%" IDENTIFIED BY "backupsso";
GRANT USAGE ON *.* TO 'backupsso'@'%' IDENTIFIED BY PASSWORD '13a446e902d675f6'
GRANT SELECT, LOCK TABLES, EXECUTE, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `internaltest0`.* TO 'backupsso'@'%'
GRANT EXECUTE ON FUNCTION `internaltest0`.`fdm_exp_rank` TO 'backupsso'@'%'这样看来,我应该是对函数有权限查看的,但是为什么报那样的错呢。
我也知道啊,但是在权限表中没有SHOW CREATE FUNCTION这个权限。GRANT SHOW CREATE FUNCTION
ON FUNCTION internaltest0.fdm_exp_rank TO backupsso@"%" IDENTIFIED BY "backupsso";
报错,
GRANT SHOW CREATE FUNCTION
ON internaltest0.* TO backupsso@"%" IDENTIFIED BY "backupsso";
报错。
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE FUNCTION
ON internaltest0.* TO backupsso@"%" IDENTIFIED BY "backupsso"' at line 1
Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used