【问题标题】:Bad to Grant reload permission in mysql?在 mysql 中授予重新加载权限不好?
【发布时间】:2011-03-16 17:19:37
【问题描述】:

因为我在使用 mysql i need to use flush 时遇到了问题。我发现用户不能在没有重新加载权限的情况下使用刷新。把它给他我的语法是

grant reload on *.* to 'webapp_wt'@'localhost';

我不能做 specific_db.*。授予这种许可感觉不对。这有什么问题吗?这个mysql用户是否有可能导致问题? (在我授予它权限的数据库之外)。

-edit- 在 45 分钟内准确地看到一个视图和一个答案(这很好!)。我被逗乐了。

有没有办法只授予刷新表?

【问题讨论】:

    标签: mysql permissions


    【解决方案1】:

    授予任何用户访问管理功能的权限是不好的,尤其是如果他们不了解/不关心它在幕后的影响(在这种情况下影响可能很大)。

    我个人会将其封装在应用程序逻辑中。因此,用户无需刷新表,而是只需在您的数据库中设置一个标志,说“嘿,我想刷新”

    然后,您可以使用脚本/cronjob 定期检查标志,并添加逻辑来决定何时进行刷新。这也意味着您可以将所有管理员权限留给自己 == 减少麻烦

    【讨论】:

      【解决方案2】:

      由于它是服务器管理的事情,您确实不能将它授予特定的数据库/表(您可以使用 RELOAD 执行的大部分操作对于特定的数据库或表没有意义)。

      是的,用户可能会通过反复 FLUSH'ing 表或 FLUSH QUERY CACHE 严重影响性能,并且可能会使用 FLUSH MASTER 中断(滞后)复制。

      【讨论】:

      • 有没有办法只允许刷新表?
      • 所以可能发生的更糟糕的情况是影响性能。实际上不会破坏复制、二进制日志等?
      • 即使只有 FLUSH TABLES(我认为这是不可能的),FLUSH TABLES WITH READ LOCK 有效地阻止了数据库上的所有更改,但仍然不是您想要的。
      • 嗯,这个问题和答案可能有点过时了。但是,据我所知,它仍然适用。谁在回答后 3.5 年投了反对票,非常欢迎赐教...
      猜你喜欢
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      相关资源
      最近更新 更多