2013-08-31 104 views
2

我使用phpMyAdmin和命令行的混合来维护用户权限。当我去出口使用phpMyAdmin一些用户权限它产生的SQL是为什么MySQL用户权限用反斜杠导出?

GRANT SELECT, INSERT, UPDATE, DELETE ON `table\_name`.* TO 'user'@'localhost'; 

我不明白为什么反斜线被添加到表名。我在某处读过下划线用作通配符?如果我要运行该SQL,但删除反斜杠将用户权限是否与以前一样?

回答

2

不,权限不一样。你是对的,_用作通配符,它​​代表一个任意字符,另一个通配符是%,它代表零个或多个字符
(类似的正则表达式将是..*)。

这些应用于权限的通配符与string comparisions的工作方式相同,因此如果删除反斜杠,则下划线不再视为文字,因此授予的权限适用于与该模式匹配的所有数据库*。

*注意:虽然在这里叫做table_name,但它实际上是指数据库而不是表格。