帶您深入了解MySQL用戶連接
何種MySQL用戶可以進(jìn)行連接,又從哪里連接呢?可以很多MySQL新人都遇到過這些問題,您都可以從下文找到想要的答案。
你可以允許一個用戶從特定的或一系列主機(jī)連接。有一個極端,如果你知道降職從一個主機(jī)連接,你可以將權(quán)限局限于單個主機(jī):
GRANT ALL ON samp_db.* TO boris@localhost IDENTIFIED BY "ruby"
GRANT ALL ON samp_db.* TO fred@res.mars.com IDENTIFIED BY "quartz"
(samp_db.*意思是“samp_db數(shù)據(jù)庫的所有表)另一個極端是,你可能有一個經(jīng)常旅行并需要能從世界各地的主機(jī)連接的用戶max。在這種情況下,你可以允許他無論從哪里連接:
GRANT ALL ON samp_db.* TO max@% IDENTIFIED BY "diamond"
“%”字符起通配符作用,與LIKE模式匹配的含義相同。在上述語句中,它意味著“任何主機(jī)”。所以max和max@%等價。這是建立用戶最簡單的方法,但也是最不安全的。
其中,你可以允許一個用戶從一個受限的主機(jī)集合訪問。例如,要允許mary從snake.net域的任何主機(jī)連接,用一個%.snake.net主機(jī)指定符:
GRANT ALL ON samp_db.* TO mary@.snake.net IDENTIFIED BY "quartz";
如果你喜歡MySQL用戶標(biāo)識符的主機(jī)部分可以用IP地址而不是一個主機(jī)名來給定。你可以指定一個IP地址或一個包含模式字符的地址,而且,從MySQL 3.23,你還可以指定具有指出用于網(wǎng)絡(luò)號的位數(shù)的網(wǎng)絡(luò)掩碼的IP號:
GRANT ALL ON samp_db.* TO boris@192.168.128.3 IDENTIFIED BY "ruby"
GRANT ALL ON samp_db.* TO fred@192.168.128.% IDENTIFIED BY "quartz"
GRANT ALL ON samp_db.* TO rex@192.168.128.0/17 IDENTIFIED BY "ruby"
***個例子指出MySQL用戶能從其連接的特定主機(jī),第二個指定對于C類子網(wǎng)192.168.128的IP模式,而第三條語句中,192.168.128.0/17指定一個17位網(wǎng)絡(luò)號并匹配具有192.168.128頭17位的IP地址。
【編輯推薦】