我想创建一个用户了projectA“具有相同的权限,每一个名为“projectA_%”GRANT与MySQL中的数据库名称通配符?
我知道它可能的,但MySQL不喜欢我的语法数据库:
grant all on 'projectA\_%'.* to 'projectA'@'%';
参考: http://dev.mysql.com/doc/refman/5.1/en/grant.html
我想创建一个用户了projectA“具有相同的权限,每一个名为“projectA_%”GRANT与MySQL中的数据库名称通配符?
我知道它可能的,但MySQL不喜欢我的语法数据库:
grant all on 'projectA\_%'.* to 'projectA'@'%';
参考: http://dev.mysql.com/doc/refman/5.1/en/grant.html
如果我用背抽动,而不是在语法单引号,这似乎只是很好地工作:
grant all on `projectA\_%`.* to `projectA`@`%`;
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';
数据库名称需要备份文件
编辑:Underscore现在已被转义。
按MySQL的GRANT文档:
的“_”在,在全球或数据库 级别授予权限GRANT语句中指定数据库名称 时允许“%”通配符。这意味着,例如,如果要将“_” 字符用作数据库名称的一部分,则应在GRANT语句的 中将其指定为“\ _”,以防止用户能够访问 与通配符模式匹配的其他数据库;例如,格兰特 ... ON`FOO \ _bar`。* TO ....
背抽动时,才需要对数据库名称,而不是 – glarrain 2012-11-07 21:36:49
这不是为我工作,当我使用'用户特定的表名'而不是'*'例如''将'projectA%'.'some_table%'全部授予'some_user' @'%';'' – 2017-01-17 07:27:31