如何在多个数据库上授予权限?的MySQL。
像
这样的东西GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
ON 'databasesprefix%'.*
TO testuser@localhost IDENTIFIED BY 'testpasswd';
答案 0 :(得分:15)
您只需要使用反引号而不是db_name前缀周围的引号。
我认为这会奏效:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
ON `databasesprefix%`.*
TO testuser@localhost IDENTIFIED BY 'testpasswd';
答案 1 :(得分:8)
你的例子应该有用。来自(5.5) manual:
在授予全局或数据库级别权限的GRANT语句中指定数据库名称时,允许使用“_”和“%”通配符。
%
匹配任意数字(甚至零)的字符,_
只匹配一个字符。如果您想在数据库名称中使用_
,则必须将其作为\_
转义。另请参阅手册中的其他注意事项。
< 更新>正如另一个答案所指出的:如果数据库名称包含通配符,则必须引用identifier quote character,反引号(“`”)< ; /的更新强>>