我正在使用MySql8,发现了一个奇怪的问题。我已经从root用户创建了一个新的admin用户,如下所示
use mysql
create user 'admin'@'localhost' IDENTIFIED BY 'Somehardpassword1';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
flush privileges;然后,我使用此用户登录,并尝试授予代理,但权限被拒绝。我可以授予root代理权限,但不能授予我的新管理员用户代理权限。
mysql> GRANT PROXY ON 'mySQL_AD'@'%' TO ''@'';
ERROR 1698 (28000): Access denied for user 'admin'@'localhost'
mysql>我是不是漏掉了什么?我可以授权、修改和创建其他所有内容,但不能授权代理。
管理员用户权限如下:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `admin`@`localhost` WITH GRANT OPTION
GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,INNODB_REDO_LOG_ARCHIVE,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `admin`@`localhost` WITH GRANT OPTION发布于 2020-09-21 16:25:51
不确定这是否是正确的方式,但这对我来说是有效的:
我可以看到根用户在mysql.proxies_priv表中有一个条目:
mysql> select * from mysql.proxies_priv;
+-----------+------+--------------+--------------+------------+---------+---------------------+
| Host | User | Proxied_host | Proxied_user | With_grant | Grantor | Timestamp |
+-----------+------+--------------+--------------+------------+---------+---------------------+
| localhost | root | | | 1 | boot@ | 0000-00-00 00:00:00 |
+-----------+------+--------------+--------------+------------+---------+---------------------+
1 row in set (0.00 sec)因此,我克隆了该条目并添加了我的管理员用户
insert into mysql.proxies_priv values ('localhost','admin','','','1','boot@','0000-00-00 00:00:00');
flush privileges;这给出了以下输出
mysql> select * from mysql.proxies_priv;
+-----------+-------+--------------+--------------+------------+---------+---------------------+
| Host | User | Proxied_host | Proxied_user | With_grant | Grantor | Timestamp |
+-----------+-------+--------------+--------------+------------+---------+---------------------+
| localhost | admin | | | 1 | @boot | 0000-00-00 00:00:00 |
| localhost | root | | | 1 | @boot | 0000-00-00 00:00:00 |
+-----------+-------+--------------+--------------+------------+---------+---------------------+
2 rows in set (0.00 sec)https://stackoverflow.com/questions/63988327
复制相似问题