2013-08-31 70 views
2

我使用phpMyAdmin和命令行的混合來維護用戶權限。當我去出口使用phpMyAdmin一些用戶權限它產生的SQL是爲什麼MySQL用戶權限用反斜槓導出?

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

我不明白爲什麼反斜線被添加到表名。我在某處讀過下劃線用作通配符?如果我要運行該SQL,但刪除反斜槓將用戶權限是否與以前一樣?

回答

2

不,權限不一樣。你是對的,_用作通配符,它​​代表一個任意字符,另一個通配符是%,它代表零個或多個字符
(類似的正則表達式將是..*)。

這些應用於權限的通配符與string comparisions的工作方式相同,因此如果刪除反斜槓,則下劃線不再視爲文字,因此授予的權限適用於與該模式匹配的所有數據庫*。

*注意:雖然在這裏叫做table_name,但它實際上是指數據庫而不是表格。