新聞中心
MySQL用戶權(quán)限根據(jù)用戶的級別不同,權(quán)限級別也有所不同, 下面就為您介紹一些MySQL用戶權(quán)限相關(guān)方面的知識,希望可以讓您對MySQL用戶權(quán)限有更深的認識。

你可以授權(quán)不同級別的MySQL用戶權(quán)限,全局權(quán)限是最強大的,因為它們適用于任何數(shù)據(jù)庫。要使ethel成為可做任何事情的超級用戶,包括能授權(quán)給其它用戶,發(fā)出下列語句:
GRANT ALL ON *.* TO ethel@localhost IDENTIFIED BY "coffee" WITH GRANT OPTION
ON子句中的*.*意味著“所有數(shù)據(jù)庫、所有表”。從安全考慮,我們指定ethel只能從本地連接。限制一個超級用戶可以連接的主機通常是明智的,因為它限制了試圖破解口令的主機。
有些MySQL用戶權(quán)限(FILE、PROCESS、RELOAD和SHUTDOWN)是管理權(quán)限并且只能用"ON *.*"全局權(quán)限指定符授權(quán)。如果你愿意,你可以授權(quán)這些權(quán)限,而不授權(quán)數(shù)據(jù)庫權(quán)限。例如,下列語句設(shè)置一個flush用戶,他只能發(fā)出flush語句。 這可能在你需要執(zhí)行諸如清空日志等的管理腳本中會有用:
GRANT RELOAD ON *.* TO flushl@localhost IDENTIFIED BY "flushpass"
一般地,你想授權(quán)管理MySQL用戶權(quán)限,吝嗇點,因為擁有它們的用戶可以影響你的服務(wù)器的操作。
數(shù)據(jù)庫級權(quán)限適用于一個特定數(shù)據(jù)庫中的所有表,它們可通過使用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"
第一條語句向bill授權(quán)samp_db數(shù)據(jù)庫中所有表的權(quán)限,第二條創(chuàng)建一個嚴格限制訪問的用戶ro_user(只讀用戶),只能訪問samp_db數(shù)據(jù)庫中的所有表,但只有讀取,即用戶只能發(fā)出Select語句。
你可以列出一系列同時授予的各個MySQL用戶權(quán)限。例如,如果你想讓用戶能讀取并能修改現(xiàn)有數(shù)據(jù)庫的內(nèi)容,但不能創(chuàng)建新表或刪除表,如下授予這些權(quán)限:
GRANT Select,Insert,Delete,Update ON samp_db TO bill@snake.net INDETIFIED BY "rock"
對于更精致的訪問控制,你可以在各個表上授權(quán),或甚至在表的每個列上。當(dāng)你想向用戶隱藏一個表的部分時,或你想讓一個用戶只能修改特定的列時,列特定權(quán)限非常有用。如:
GRANT Select ON samp_db.member TO bill@localhost INDETIFIED BY "rock"
GRANT Update (expiration) ON samp_db. member TO bill@localhost
第一條語句授予對整個member表的讀權(quán)限并設(shè)置了一個口令,第二條語句增加了Update權(quán)限,當(dāng)只對expiration列。沒必要再指定口令,因為第一條語句已經(jīng)指定了。
如果你想對多個列授予權(quán)限,指定一個用逗號分開的列表。例如,對assistant用戶增加member表的地址字段的Update權(quán)限,使用如下語句,新權(quán)限將加到用戶已有的權(quán)限中:
GRANT Update (street,city,state,zip) ON samp_db TO assistant@localhost
分享文章:帶您深入了解MySQL用戶權(quán)限
鏈接分享:http://www.dlmjj.cn/article/cogoigo.html


咨詢
建站咨詢
