帶您深入了解MySQL用戶權(quán)限
MySQL用戶權(quán)限根據(jù)用戶的級(jí)別不同,權(quán)限級(jí)別也有所不同, 下面就為您介紹一些MySQL用戶權(quán)限相關(guān)方面的知識(shí),希望可以讓您對(duì)MySQL用戶權(quán)限有更深的認(rèn)識(shí)。
你可以授權(quán)不同級(jí)別的MySQL用戶權(quán)限,全局權(quán)限是最強(qiáng)大的,因?yàn)樗鼈冞m用于任何數(shù)據(jù)庫(kù)。要使ethel成為可做任何事情的超級(jí)用戶,包括能授權(quán)給其它用戶,發(fā)出下列語(yǔ)句:
GRANT ALL ON *.* TO ethel@localhost IDENTIFIED BY "coffee" WITH GRANT OPTION
ON子句中的*.*意味著“所有數(shù)據(jù)庫(kù)、所有表”。從安全考慮,我們指定ethel只能從本地連接。限制一個(gè)超級(jí)用戶可以連接的主機(jī)通常是明智的,因?yàn)樗拗屏嗽噲D破解口令的主機(jī)。
有些MySQL用戶權(quán)限(FILE、PROCESS、RELOAD和SHUTDOWN)是管理權(quán)限并且只能用"ON *.*"全局權(quán)限指定符授權(quán)。如果你愿意,你可以授權(quán)這些權(quán)限,而不授權(quán)數(shù)據(jù)庫(kù)權(quán)限。例如,下列語(yǔ)句設(shè)置一個(gè)flush用戶,他只能發(fā)出flush語(yǔ)句。 這可能在你需要執(zhí)行諸如清空日志等的管理腳本中會(huì)有用:
GRANT RELOAD ON *.* TO flushl@localhost IDENTIFIED BY "flushpass"
一般地,你想授權(quán)管理MySQL用戶權(quán)限,吝嗇點(diǎn),因?yàn)閾碛兴鼈兊挠脩艨梢杂绊懩愕姆?wù)器的操作。
數(shù)據(jù)庫(kù)級(jí)權(quán)限適用于一個(gè)特定數(shù)據(jù)庫(kù)中的所有表,它們可通過(guò)使用ON db_name.*子句授予:
GRANT ALL ON samp_db TO bill@racer.snake.net INDETIFIED BY "rock" GRANT Select ON samp_db TO ro_user@% INDETIFIED BY "rock"
第一條語(yǔ)句向bill授權(quán)samp_db數(shù)據(jù)庫(kù)中所有表的權(quán)限,第二條創(chuàng)建一個(gè)嚴(yán)格限制訪問(wèn)的用戶ro_user(只讀用戶),只能訪問(wèn)samp_db數(shù)據(jù)庫(kù)中的所有表,但只有讀取,即用戶只能發(fā)出Select語(yǔ)句。
你可以列出一系列同時(shí)授予的各個(gè)MySQL用戶權(quán)限。例如,如果你想讓用戶能讀取并能修改現(xiàn)有數(shù)據(jù)庫(kù)的內(nèi)容,但不能創(chuàng)建新表或刪除表,如下授予這些權(quán)限:
GRANT Select,Insert,Delete,Update ON samp_db TO bill@snake.net INDETIFIED BY "rock"
對(duì)于更精致的訪問(wèn)控制,你可以在各個(gè)表上授權(quán),或甚至在表的每個(gè)列上。當(dāng)你想向用戶隱藏一個(gè)表的部分時(shí),或你想讓一個(gè)用戶只能修改特定的列時(shí),列特定權(quán)限非常有用。如:
GRANT Select ON samp_db.member TO bill@localhost INDETIFIED BY "rock"
GRANT Update (expiration) ON samp_db. member TO bill@localhost
第一條語(yǔ)句授予對(duì)整個(gè)member表的讀權(quán)限并設(shè)置了一個(gè)口令,第二條語(yǔ)句增加了Update權(quán)限,當(dāng)只對(duì)expiration列。沒(méi)必要再指定口令,因?yàn)榈谝粭l語(yǔ)句已經(jīng)指定了。
如果你想對(duì)多個(gè)列授予權(quán)限,指定一個(gè)用逗號(hào)分開(kāi)的列表。例如,對(duì)assistant用戶增加member表的地址字段的Update權(quán)限,使用如下語(yǔ)句,新權(quán)限將加到用戶已有的權(quán)限中:
GRANT Update (street,city,state,zip) ON samp_db TO assistant@localhost
【編輯推薦】
使用MySQL命令行備份及恢復(fù)數(shù)據(jù)庫(kù)
用MySQL臨時(shí)表加速查詢



















