【问题标题】:how to add super privileges to mysql database?如何为mysql数据库添加超级权限?
【发布时间】:2012-08-10 08:57:49
【问题描述】:

我正在尝试在 mysql 中执行查询。

SET GLOBAL log_bin_trust_function_creators =1; 

错误:

SQL 查询:
设置全局 log_bin_trust_function_creators =1
MySQL 说:
#1227 - 访问被拒绝;您需要此操作的 SUPER 权限

我想知道如何将SUPER 权限分配给任何数据库

【问题讨论】:

  • 你能以 root 用户身份登录这个 MySQL 服务器吗?
  • 是的,但我的数据库来自 Godaddy,而 Starfield 是第三方处理它。所以它不显示特权。
  • 您只是此数据库服务器中众多租户中的一个吗?如果是这样的话,我怀疑他们会让你拥有SUPER 权限来管理整个服务器。

标签: mysql


【解决方案1】:

您可以使用phpmyadmin添加超级权限:

转到 PHPMYADMIN > 权限 > 编辑用户 > 在管理员选项卡下单击超级。 > 去

如果你想通过Console来做,请这样做:

 mysql> GRANT SUPER ON *.* TO user@'localhost' IDENTIFIED BY 'password';

执行上述代码后,以:

结束
mysql> FLUSH PRIVILEGES;

您应该使用*.*,因为 SUPER 不是仅适用于一个数据库的特权,它是全局的。

【讨论】:

  • 你能帮我在哪里找到权限选项
  • 我使用了控制台(我的 phpmyadmin 没有权限选项卡),两个查询都返回 OK,0 行受影响。但是在尝试创建触发器时仍然出现权限错误。
  • 我用一个特定的表(而不是*.*)尝试了这个,但收到了错误Incorrect usage of DB GRANT and GLOBAL PRIVILEGES。有什么建议吗?
  • 您的答案中需要在用户名周围使用撇号,但除此之外它很棒
  • 如果 mysql 在 AWS RDS 上,是否还涉及其他步骤?
【解决方案2】:

您可以在此处查看权限。

然后你就可以编辑用户了

【讨论】:

  • 它在本地主机中,但我的数据库来自 godaddy,starfield 是第三方处理它。所以它不显示特权。
  • 在我的 phpMyadmin 中没有类似权限的东西。
【解决方案3】:

在 Sequel Pro 中,访问“用户帐户”窗口。请注意,任何 MySQL 管理程序都可以代替 Sequel Pro。

添加以下帐户和权限:

GRANT SUPER ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD

【讨论】:

    【解决方案4】:

    只有在授予超级用户后查询 phpmyadmin 打印。希望对控制台的人有所帮助:

    ON $.$ TO-> $=* 不显示当您将两个放在它们之间并在它们之间添加一个点时。

    从 'usr'@'localhost' 中撤销 . 上的所有权限;全部授予 . 上的权限到 'usr'@'localhost' 不需要 GRANT 选项 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

    反之亦然,移除授权:

    从 'dos007'@'localhost' 中撤销 . 上的所有权限;撤销授予 选项 . FROM 'dos007'@'localhost';授予 上的所有权限。 TO 'dos007'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

    检查 vagrant 应该可以在任何 mysql 中工作

    【讨论】:

      【解决方案5】:

      在 Centos 5 上,我在使用正确的 uid 和 pw(具有 root 访问权限)登录后,尝试从 MySQL shell 更改某些变量值时遇到各种错误。我得到的错误是这样的:

      mysql> -- Set some variable value, for example
      mysql> SET GLOBAL general_log='ON';
      ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
      

      在一个极其偶然的时刻,我做了以下事情:

      OS-Shell> sudo mysql                          # no DB uid, no DB pw
      

      请注意,我没有提供数据库 uid 和密码

      mysql> show variables;
      mysql> -- edit the variable of interest to the desired value, for example
      mysql> SET GLOBAL general_log='ON';
      

      效果很好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-04
        • 2021-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-26
        • 2010-12-10
        相关资源
        最近更新 更多