MySQL(转储)8-例程的适当权限是什么



当与非root用户和--routines标志一起使用mysqldump时,我得到以下错误消息:

mysqldump: <user> has insufficient privileges to SHOW CREATE FUNCTION `<function name>`!

此外,mysqldump提示了这个问题:

-- insufficient privileges to SHOW CREATE FUNCTION `<function name>`
-- does <user> have permissions on mysql.proc?

这似乎很清楚,直到我真正尝试了一下,发现mysql.proc在MySQL 8中不受欢迎。我找不到新的等价物,也找不到为什么mysqldump一开始就建议使用一个不推荐使用的表。我的mysqldmysqldump都是8.0.21版本。

使用GRANT ALL PRIVILEGES ON *.* TO <user>"解决"了这个问题,并允许用户导出函数,但对于生产系统来说,这显然不是一个实用的解决方案。

那么,新的GRANT或专门允许用户使用SHOW CREATE FUNCTION的设置是什么呢?

GRANT SHOW_ROUTINE ON *.* TO 'user'@'localhost;

https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_show-常规

最新更新