【发布时间】:2016-06-10 04:41:28
【问题描述】:
mysql db 用户使用 mysqldump 文件和恢复所需的最低权限是什么。
- 在我的情况下无法使用 root db 用户。
- 已使用 mysqldump 实用程序对转储文件中的所有模式进行了完整备份。
- 需要知道授予 db 用户(除了 root db 用户)所需的最低权限,以便它可以用于从 mysqldump 文件进行恢复。
【问题讨论】:
标签: mysql
mysql db 用户使用 mysqldump 文件和恢复所需的最低权限是什么。
【问题讨论】:
标签: mysql
如果没有SUPER 权限,则无法将完整的、未修改的转储文件恢复到 MySQL 服务器。
“root”用户不是一个神奇的用户。它恰好是一个默认创建并拥有GRANT ALL PRIVILEGES ON *.* ... WITH GRANT OPTION 的用户。另一个用户可以被赋予相同的权限。
恢复数据库本质上意味着删除服务器上的所有内容并用其他内容替换它,包括所有用户帐户,因此需要SUPER。
如果对转储文件进行了某些修改,例如删除所有DEFINER 语句,以及修改 mysql 模式的处理方式,则可以使用更有限的权限,但这些修改是具有系统特定考虑的高级主题.
【讨论】:
我从SUPER、INSERT和ALTER开始,并尝试反复添加新的,直到恢复成功完成。
这就是我最终得到的结果:
SUPERALTERINSERTCREATEDROPLOCK TABLESREFERENCESSELECT如果您有例程和触发器,那么您还需要这两个:
CREATE ROUTINETRIGGER希望这会有所帮助。
【讨论】:
来自Mysql官网:
mysqldump 至少需要转储表的 SELECT 权限, SHOW VIEW 用于转储视图,TRIGGER 用于转储触发器和 LOCK 如果不使用 --single-transaction 选项,则为 TABLES。某些选项 可能需要选项描述中所述的其他权限。
--单笔交易
此选项将事务隔离模式设置为 REPEATABLE READ 和 转储前向服务器发送 START TRANSACTION SQL 语句 数据。它仅对诸如 InnoDB 之类的事务表有用, 因为那时它会转储当时数据库的一致状态 当 START TRANSACTION 发出时没有阻止任何应用程序。
总之,特权是:
【讨论】: