【问题标题】:set permissions on users mysql with wildcard?使用通配符设置用户mysql的权限?
【发布时间】:2011-03-14 06:37:03
【问题描述】:

通常人们会说:

将所有权限授予 . 到 'monty'@'%'

我们可以使用通配符来仅针对特定数据库,如下所示:

将 SHOP%.* 上的所有特权授予 'monty'@'%'

我们希望在前缀为“SHOP”的数据库上授予用户插入权限

【问题讨论】:

    标签: mysql permissions


    【解决方案1】:

    是的,你可以。请参阅GRANT Syntax。这是该页面的引述:

    允许使用“_”和“%”通配符 在指定数据库名称时 授予权限的 GRANT 语句 在全局或数据库级别。这 意味着,例如,如果你想要 使用“_”字符作为 数据库名称,你应该指定它 作为 GRANT 语句中的“\_”, 阻止用户能够 访问其他数据库匹配 通配符模式;例如, GRANT ... ON `foo\_bar`.* TO

    【讨论】:

    • 谢谢,但在执行此操作时出现错误:将“shop%”上的选择、插入、删除、更新。* 授予 'someone'@'localhost'; -> 你的 SQL 语法有错误
    • 您必须在数据库名称周围使用反引号:grant select, insert, delete, update on `shop%`.* to 'someone'@'localhost';
    • 注意,在 AWS RDS MySQL 服务器上,您需要先使用 'use somedbNameDoesntMatter;' 选择数据库那么这个授权命令就会起作用。
    猜你喜欢
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2015-08-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多