为什么使用反斜杠导出MySQL用户权限?

时间:2013-08-31 17:16:29

标签: mysql phpmyadmin

我使用phpMyAdmin和命令行的混合来维护用户权限。当我使用phpMyAdmin导出一些用户权限时,它生成的sql是

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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