2

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

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

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

4

1 回答 1

2

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

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

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

于 2013-08-31T18:20:08.093 回答