4.1.2 授予备份管理员MySQL权限

对于大多数备份操作,mysqlbackup--user命令使用和 --password选项 提供的凭据连接到 MySQL 服务器。指定 user需要一定的权限。您可以创建具有最小权限集的新用户,也可以使用管理帐户(例如 root)。以下是mysqlbackup所需的权限:

  • mysqlbackup连接到服务器 的 MySQL 用户的最低权限 是:

    • RELOAD在所有数据库和表上。

    • CREATE, INSERT, DROP, andUPDATE 在表上mysql.backup_progress and mysql.backup_history, also SELECTand ALTER on mysql.backup_history.

    • SUPER,以启用和禁用日志记录,并优化锁定以最大程度地减少对数据库处理的中断。

    • REPLICATION CLIENT, 检索 与备份一起存储 的二进制日志位置。

    • PROCESS, 处理带有子句的 DDL 语句ALGORITHM = INPLACE

    • SELECTon performance_schema.replication_group_members,了解服务器实例是否是组复制设置的一部分,如果是,则收集有关组成员的信息(4.1.2 及更高版本要求)。

    要创建一个 MySQL 用户(mysqlbackup在本例中)并为用户设置上述权限以从本地主机连接,请从mysql客户端程序发出如下语句:

    CREATE USER 'mysqlbackup'@'localhost' IDENTIFIED BY 'password';
    GRANT RELOAD, SUPER, PROCESS ON *.* TO 'mysqlbackup'@'localhost';
    GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'mysqlbackup'@'localhost';
    GRANT CREATE, INSERT, SELECT, DROP, UPDATE, ALTER ON mysql.backup_history 
        TO 'mysqlbackup'@'localhost';
    GRANT REPLICATION CLIENT ON *.* TO 'mysqlbackup'@'localhost';
    GRANT SELECT ON performance_schema.replication_group_members TO 'mysqlbackup'@'localhost';
  • 在从 5.7.22 或更早版本升级且之前已通过 MySQL Enterprise Backup 备份的 MySQL Server 上首次使用 MySQL Enterprise Backup 4.1.2 或更高版本 时,需要以下额外权限 :

    • CREATE, INSERT, 和DROPmysql.backup_history_old

    • CREATE, INSERT, DROPALTERmysql.backup_history_new

    通过在mysql客户端 发出这些示例语句来授予这些权限:

    GRANT CREATE, INSERT, DROP ON mysql.backup_history_old TO 'mysqlbackup'@'localhost';
    GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_history_new TO 'mysqlbackup'@'localhost';
    笔记

    如果您正在使用多主组复制设置,请确保在所有主节点上授予这些权限;另请参阅 第 8 章,将 MySQL 企业备份与组复制结合使用

    这些权限用于尝试将mysql.backup_history表迁移到更新的格式(有关详细信息,请参阅附录 D,备份历史表更新 ),并且在 MySQL Enterprise Backup 4.1.2 或更高版本的第一次备份操作发生后不再需要它们在服务器上,到那时它们可以被撤销。

  • 使用 MySQL Enterprise Backup 的特定功能需要以下额外权限:

    • 使用 可传输表空间 (TTS)备份和恢复 InnoDB 表:

      • LOCK TABLESSELECT备份表。 CREATE用于恢复表。

      • DROP用于在由于某些原因恢复失败时删除表。

      • FILE用于恢复服务器数据目录之外的外部表空间中的表。

    • 使用系统备份到磁带 (SBT) API 创建磁带备份

      • CREATE, INSERT, DROP, 和 UPDATEmysql.backup_sbt_history桌子上

    如果您正在使用需要它们的功能,请设置这些额外权限。mysql要设置所有这些,请从客户端程序 发出如下语句 :

    GRANT LOCK TABLES, SELECT, CREATE, DROP, FILE ON *.* TO 'mysqlbackup'@'localhost';
    GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_sbt_history TO 'mysqlbackup'@'localhost';
  • 有关将 MySQL Enterprise Backup 与 Group Replication 设置一起使用所需的权限,请参阅 第 8 章,将 MySQL Enterprise Backup 与 Group Replication 一起使用