【问题标题】:mysql grant permissions on all but system tablesmysql授予除系统表之外的所有权限
【发布时间】:2020-05-29 07:09:28
【问题描述】:

我正在尝试授予“所有数据库所有表”的一组权限。 mysql 系统数据库除外(mysql、information_schema、performance_schema 和 sys(我相信我都命名了它们?)) .

我不知道该怎么做。

例如,我需要一个 GRANT SELECT ON 。 例外系统表。

【问题讨论】:

  • 参考this answer。
  • 谢谢,但接受的解决方案对我来说没有多大意义: SELECT CONCAT("GRANT SELECT ON ",SCHEMA_NAME,".* TO 'test_user'@'localhost';") FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT LIKE 'mysql';架构?这一定是错字?
  • 不,这不是错字。那是一张合适的桌子。你检查过 information_schema 数据库吗?你会发现那张桌子

标签: mysql database grant filtered


【解决方案1】:

用途:

SELECT CONCAT("GRANT ALL PRIVILEGES ON ",SCHEMA_NAME,".* TO 'test_user'@'localhost';") FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql','information_schema', 'performance_schema','sys')

这将为您提供单个数据库的查询,您可以使用这些查询将权限授予特定用户。

之后,使用:

FLUSH PRIVILEGES;

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-07
    • 2012-02-19
    • 2012-02-22
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2018-03-31
    相关资源
    最近更新 更多