【问题标题】:Grant privileges to an existing user in MySQL向 MySQL 中的现有用户授予权限
【发布时间】:2020-04-28 22:46:53
【问题描述】:

尝试使用

现有数据库用户授予权限
GRANT SELECT, INSERT, UPDATE ON myschema.* TO 'OptimusPrime'@'cybertron';

但我不断得到

1410, 'You are not allowed to create a user with GRANT'

我很困惑,因为我确定用户 OptimusPrime 存在于数据库中(!)。我使用验证它

select * from mysql.user;

事实上,OptimusPrime 就在那里。我难住了。任何人都可以作为我为什么不断收到这个的线索?我不是要创建新用户

编辑:我使用的是 root 用户

EDIT2:尝试对 root 用户执行此操作。得到同样的错误。我会尝试重新安装服务器。有什么可疑的。完成后我会更新

【问题讨论】:

  • 检查您当前的用户,也许您的用户无权授予其他用户权限,正在使用特权用户?
  • 我正在使用 root 用户。用户在尝试此语句之前已经创建了整个数据库架构
  • 你说 OptimusPrime 在那里,但那是 OptimusPrime@cybertron 吗?实际向我们展示该查询的结果,以便我们为您提供帮助。
  • 检查一下,stackoverflow.com/questions/19237475/… 接受的答案可能会有所帮助。
  • 谢谢@mamounothman,我检查了一下,我正在使用 root 用户,而 root 确实有授权选项,所以我不确定是这种情况

标签: mysql database privileges


【解决方案1】:

要执行此命令,您需要以管理员身份执行 sql 查询,或者在授予用户权限的情况下执行 GRANT 查询。

你可以连接root用户,并尝试执行

GRANT SELECT, INSERT, UPDATE ON myschema.* TO 'OptimusPrime'@'cybertron';

结果会更好。

【讨论】:

  • 其实我已经在连接root了。它是创建模式的脚本的一部分。最后(为了避免任何进一步的 root-user 语句)我想授予普通用户权限
  • 您之前修改过root用户的权限吗?还是全新安装?
  • 我不确定您的意思是:编辑了 root 用户?不。我正在尝试编辑 OptimusPrime。是的,我认为他之前被编辑过
  • 好的,你的 MySQL 服务器版本是多少?
  • 选择@@版本; -- 8.0.18
猜你喜欢
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 2021-09-23
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多