如何在 mysql 数据库中通过 root 将 XA_RECOVER_ADMIN 授予新用户

问题描述

MysqL 版本

select @@version;
8.0.18

创建用户

create user 'user1'@'%' identified by 'user1_pwd';

创建数据库

drop database if exists test_db;
create database test_db
character set utf8mb4
collate utf8mb4_0900_ai_ci;

授予权限

grant XA_RECOVER_ADMIN on test_db.* to 'user1'@'%';

错误信息

[HY000][3619] Illegal privilege level specified for XA_RECOVER_ADMIN

我能做什么?我可以使用新用户来授予 XA_RECOVER_ADMIN 而不是 root 权限吗?

解决方法

XA_RECOVER_ADMIN 是全局权限(管理员通常全局操作),这意味着它不能授予特定数据库。

代替

grant XA_RECOVER_ADMIN on test_db.* to 'user1'@'%';

你必须使用

grant XA_RECOVER_ADMIN on *.* to 'user1'@'%';