我想创建一个用户'projectA',它对每个名为'projectA _%'的数据库具有相同的权限
我知道它可能,但MySQL不喜欢我的语法:
grant all on 'projectA\_%'.* to 'projectA'@'%';
答案 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 ....