在MySQL中使用数据库名称通配符GRANT?

时间:2010-04-19 15:19:58

标签: mysql syntax permissions grant

我想创建一个用户'projectA',它对每个名为'projectA _%'的数据库具有相同的权限

我知道它可能,但MySQL不喜欢我的语法:

grant all on 'projectA\_%'.* to 'projectA'@'%';

参考:http://dev.mysql.com/doc/refman/5.1/en/grant.html

3 个答案:

答案 0 :(得分:67)

如果我在语法中使用back-tics而不是单引号,它似乎工作正常:

grant all on `projectA\_%`.* to `projectA`@`%`;

答案 1 :(得分:10)

GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';

数据库名称需要后备文件

已编辑:现在已撤消下划线。

答案 2 :(得分:3)

根据MySQL的GRANT文档:

  

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