【问题标题】:Grant privileges to user in MySQL在 MySQL 中授予用户权限
【发布时间】:2014-01-31 16:39:51
【问题描述】:

从我网站的控制面板中,我创建了一个新的 MySQL(5) 数据库 Test 和一个新用户 admin,密码为 123。我尝试使用以下方法为用户 admin 分配权限:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost'

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'Test'

我不断收到以下错误:

#1045 - 用户 'admin'@'%' 的访问被拒绝(使用密码:YES)

我需要用户admin 的以下权限:

创建、更改、删​​除、插入、选择、更新、锁定表

如何在来自 phpMyAdmin 的查询中做到这一点?

【问题讨论】:

  • 你刷新权限了吗?
  • 您也可以在mysql.user中手动编辑您的权限
  • @h。我以前从未使用过 MYSQl。我不是编码员。我应该怎么办?我进行了一些搜索,但我不正确。
  • 运行FLUSH PRIVILEGES;,然后查看权限是否生效。如果没有,请回复,我会进一步帮助您。
  • @h.好的,我试过了。这是我得到的错误:#1227 - 访问被拒绝;您需要(至少一个)执行此操作的 RELOAD 权限

标签: mysql sql-grant


【解决方案1】:

我猜您正在尝试更改以该用户身份登录的'admin'@''%' 的权限。这很奇怪。

您可以显示您使用哪个用户登录

SELECT USER();

然后检查该帐户已经拥有的授权:

SHOW GRANTS FOR 'admin'@''%';

我们得出了你的结论

GRANT ALL PRIVILEGES ON `Test`.* TO 'admin'@'%'

这表示您已经拥有数据库Test 中所有表的所有权限。但是,您不能进一步将这些权限授予其他用户(否则会有WITH GRANT OPTION)。

在安装 MySQL 期间,始终会创建 root 用户。使用它来授予其他帐户权限。

手册中的更多信息:

【讨论】:

    【解决方案2】:

    运行这些语句后尝试执行FLUSH:

    FLUSH PRIVILEGES;
    

    来自MYSQL Reference Manual

    (...) 如果您直接更改授权表但忘记重新加载它们,则您的更改在您重新启动服务器之前无效。这可能会让您想知道为什么您的更改似乎没有任何区别!

    要告诉服务器重新加载授权表,请执行刷新权限操作。 (...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-22
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 2015-11-27
      • 2012-11-30
      相关资源
      最近更新 更多