拒绝访问我有权访问的数据库

问题描述 投票:0回答:1

我正在尝试使用phpmyadmin向另一个用户授予权限,我可以访问root用户(cl43-flexfit)并尝试查询以下内容

GRANT ALL PRIVILEGES ON `cl43-flexfit`.* TO 'supuser'@'localhost';

但收到回复:

Access denied for user 'cl43-flexfit'@'%' to database 'cl43-flexfit'

虽然我经常使用cl43-flexfit用户使用该数据库。

我还查看了使用SHOW GRANT的root用户权限

并显示这些:

GRANT USAGE ON *.* TO 'cl43-flexfit'@'%' IDENTIFIED BY PASSWORD 'password'

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON `cl43-flexfit`.* TO 'cl43-flexfit'@'%' WITH GRANT OPTION

甚至当我尝试为每个数据库添加用户权限(用*。*替换cl43-flexfit。*)时出现错误,说我没有权限

Access denied for user 'cl43-flexfit'@'%' (using password: YES)

我一直与我的托管服务联系,他们说一切都是正确的。

我也无法访问PHPMyAdmin中的特权选项卡,因此无法使用GUI,必须通过编写的命令完成。

如果我对此缺乏了解,请提前致谢并道歉

mysql phpmyadmin
1个回答
1
投票

你不能GRANT ALL,除非你还拥有所有特权,以及你没有的GRANT OPTION

您必须明确授予,并仅列出您拥有(并且想要授予)的权限。

你不能授予任何ON *.*,除非你全局拥有你试图授予的所有对象的权限,加上GRANT OPTION。再说一次,你没有这个。

USAGE仅表示您被允许登录服务器,仅此而已。这是ON *.*的特殊情况,没有重要意义,因为仅登录服务器与没有特定对象相关联。

托管服务是正确的。

如果您有其他用户,则只能使用您自己的SHOW GRANTS输出中显示的格式明确授予列出的权限。

GRANT SELECT, INSERT, [more...], TRIGGER ON `cl43-flexfit`.* TO 'my-other-existing-user'@'%';
© www.soinside.com 2019 - 2024. All rights reserved.