从mysqldump恢复的Mysql用户权限

时间:2016-06-10 04:41:29

标签: mysql

mysql db用户使用mysqldump文件并恢复所需的最低权限是什么。

  1. 在我的情况下无法使用root db用户。
  2. 使用mysqldump实用程序对转储文件中的所有模式进行了完全备份。
  3. 需要知道给db用户(root用户除外)所需的最低权限,以便可以用它来从mysqldump文件进行恢复。

3 个答案:

答案 0 :(得分:3)

在没有SUPER权限的情况下,无法将完整的,未修改的转储文件还原到MySQL服务器。

" root"用户不是一个神奇的用户。它恰好是默认创建的用户GRANT ALL PRIVILEGES ON *.* ... WITH GRANT OPTION。可以为另一个用户授予相同的权限。

恢复数据库本质上意味着删除服务器上的所有内容并将其替换为其他内容,包括所有用户帐户,因此需要SUPER

如果对转储文件进行了某些修改(例如删除所有DEFINER语句)并修改了mysql架构的处理方式,则可以使用更多有限的权限,但这些修改是系统的高级主题 - 具体考虑因素。

答案 1 :(得分:2)

我开始使用SUPERINSERT和& ALTER并尝试重复添加新的,直到还原成功完成。

这就是我最终的目标:

  • SUPER
  • ALTER
  • INSERT
  • CREATE
  • DROP
  • LOCK TABLES
  • REFERENCES
  • SELECT

如果您有例程和触发器,那么您还需要这两个:

  • CREATE ROUTINE
  • TRIGGER

希望这有帮助。

答案 2 :(得分:-1)

来自Mysql官方网站:

  

mysqldump至少需要转储表的SELECT权限,   SHOW VIEW用于转储视图,TRIGGER用于转储触发器和LOCK   如果未使用--single-transaction选项,则表格。某些选择   可能需要其他权限,如选项说明中所述。

     

- 单交易

     

此选项将事务隔离模式设置为REPEATABLE READ和   在转储之前向服务器发送START TRANSACTION SQL语句   数据。它仅适用于InnoDB等事务表,   因为那时它会转储数据库的一致状态   发布START TRANSACTION时没有阻止任何应用程序。

总之,特权是:

  • 选择(必填)
  • 锁定表(必填)
  • 显示视图和触发器(可选)