44

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

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

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

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

4

3 回答 3

85

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

grant all on `projectA\_%`.* to `projectA`@`%`;
于 2010-04-19T15:29:38.987 回答
13
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';

数据库名称需要 back-tics

编辑:下划线现在被转义。

于 2013-01-18T06:42:22.403 回答
7

根据 MySQL 的GRANT文档:

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

于 2014-07-11T14:02:36.773 回答