我现在使用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 一个BETWEEN查询
- mysqld [options]怎么使用
- 帮忙啊 菜鸟发问 sql 用 copy导入数据 出现 permission denied
- 求救mysql优化问题
- MySql中为何不支持下面语句?
- 有没有办法取一个表的建表SQL
- 怎么创建一个编码为gb2312的数据库
- 在postgres里如何判断一个表里某个字段的值是否存在?在线等今天下午结贴
- SQL left join
- insert into ta select xx 如何产生不一样的ID?
- 急急急!!!两个进程同时用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