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

时间:2019-02-28 23:36:34

标签: mysql phpmyadmin

我正在尝试使用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用户一起使用该数据库。

我还研究了root用户使用SHOW GRANT的特权

并显示以下内容:

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,必须通过书面命令来完成。

如果我缺乏理解,请先谢谢并道歉

1 个答案:

答案 0 :(得分: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'@'%';
相关问题