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

JR *_*rne 38 mysql permissions syntax grant

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

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

grant all on 'projectA\_%'.* to 'projectA'@'%';
Run Code Online (Sandbox Code Playgroud)

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

JR *_*rne 72

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

grant all on `projectA\_%`.* to `projectA`@`%`;
Run Code Online (Sandbox Code Playgroud)

  • 只需要数据库名称而不是用户使用back-tics (5认同)

小智 11

GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';
Run Code Online (Sandbox Code Playgroud)

数据库名称需要回溯

编辑:下划线现在已被转义.


Tra*_*vis 5

根据MySQL的GRANT文档:

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