2010-04-19 119 views

回答

56

如果我用背抽動,而不是在語法單引號,這似乎只是很好地工作:

grant all on `projectA\_%`.* to `projectA`@`%`; 
+3

背抽動時,才需要對數據庫名稱,而不是 – glarrain 2012-11-07 21:36:49

+1

這不是爲我工作,當我使用'用戶特定的表名'而不是'*'例如''將'projectA%'.'some_table%'全部授予'some_user' @'%';'' – 2017-01-17 07:27:31

10
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd'; 

數據庫名稱需要備份文件

編輯:Underscore現在已被轉義。

2

按MySQL的GRANT文檔:

的「_」在,在全球或數據庫 級別授予權限GRANT語句中指定數據庫名稱 時允許「%」通配符。這意味着,例如,如果要將「_」 字符用作數據庫名稱的一部分,則應在GRANT語句的 中將其指定爲「\ _」,以防止用戶能夠訪問 與通配符模式匹配的其他數據庫;例如,格蘭特 ... ON`FOO \ _bar`。* TO ....