我想創建一個用戶了projectA「具有相同的權限,每一個名爲「projectA_%」GRANT與MySQL中的數據庫名稱通配符?
我知道它可能的,但MySQL不喜歡我的語法數據庫:
grant all on 'projectA\_%'.* to 'projectA'@'%';
參考: http://dev.mysql.com/doc/refman/5.1/en/grant.html
我想創建一個用戶了projectA「具有相同的權限,每一個名爲「projectA_%」GRANT與MySQL中的數據庫名稱通配符?
我知道它可能的,但MySQL不喜歡我的語法數據庫:
grant all on 'projectA\_%'.* to 'projectA'@'%';
參考: http://dev.mysql.com/doc/refman/5.1/en/grant.html
如果我用背抽動,而不是在語法單引號,這似乎只是很好地工作:
grant all on `projectA\_%`.* to `projectA`@`%`;
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';
數據庫名稱需要備份文件
編輯:Underscore現在已被轉義。
按MySQL的GRANT文檔:
的「_」在,在全球或數據庫 級別授予權限GRANT語句中指定數據庫名稱 時允許「%」通配符。這意味着,例如,如果要將「_」 字符用作數據庫名稱的一部分,則應在GRANT語句的 中將其指定爲「\ _」,以防止用戶能夠訪問 與通配符模式匹配的其他數據庫;例如,格蘭特 ... ON`FOO \ _bar`。* TO ....
背抽動時,才需要對數據庫名稱,而不是 – glarrain 2012-11-07 21:36:49
這不是爲我工作,當我使用'用戶特定的表名'而不是'*'例如''將'projectA%'.'some_table%'全部授予'some_user' @'%';'' – 2017-01-17 07:27:31