我正在尝试使用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,必须通过编写的命令完成。
如果我对此缺乏了解,请提前致谢并道歉
你不能GRANT ALL
,除非你还拥有所有特权,以及你没有的GRANT OPTION
。
您必须明确授予,并仅列出您拥有(并且想要授予)的权限。
你不能授予任何ON *.*
,除非你全局拥有你试图授予的所有对象的权限,加上GRANT OPTION
。再说一次,你没有这个。
USAGE
仅表示您被允许登录服务器,仅此而已。这是ON *.*
的特殊情况,没有重要意义,因为仅登录服务器与没有特定对象相关联。
托管服务是正确的。
如果您有其他用户,则只能使用您自己的SHOW GRANTS
输出中显示的格式明确授予列出的权限。
GRANT SELECT, INSERT, [more...], TRIGGER ON `cl43-flexfit`.* TO 'my-other-existing-user'@'%';