新聞中心
導(dǎo)讀:MySQL管理員應(yīng)該知道怎樣通過指定哪些用戶可連接到服務(wù)器、從哪里進行連接,以及在連接時做什么,來設(shè)置MySQL用戶賬號。MySQL3.22.11引入了兩個更容易進行這項工作的語句:GRANT 語句創(chuàng)建MySQL用戶并指定其權(quán)限,REVOKE 語句刪除權(quán)限。這兩個語句充當(dāng)mysql數(shù)據(jù)庫中的授權(quán)表的前端,并提供直接操縱這些表內(nèi)容的可選擇的方法。GRANT 和REVOKE 語句影響以下四個表:

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的休寧縣網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
授權(quán)表內(nèi)容
- user 可連接到服務(wù)器的用戶和他們擁有的任何全局特權(quán)
- db 數(shù)據(jù)庫級的特權(quán)
- tables _ priv 表級特權(quán)
- c o l um n s _ priv 列級特權(quán)
還有第五個授權(quán)表( host),但它不受GRANT 或REVOKE的影響。
當(dāng)您為某個用戶發(fā)布GRANT 語句時,應(yīng)在user表中為該用戶創(chuàng)建一個項。如果該語句指定了所有全局特權(quán)(管理權(quán)限或用于所有數(shù)據(jù)庫的權(quán)限),則這些指定也被記錄在user表中。如果指定了數(shù)據(jù)庫、表或列的權(quán)限,它們將記錄在db、tables_priv 和columns_priv表中。
使用GRANT 和REVOKE語句比直接修改授權(quán)表更容易。但是,建議您***通過閱讀第12章來補充本章的內(nèi)容,第12章中詳細(xì)討論了授權(quán)表。這些表非常重要,作為一位管理員應(yīng)該了解這些表是怎樣在GRANT 和REVOKE 語句級上工作的。
本節(jié)下面的部分將討論如何設(shè)置MySQL用戶的賬號和授權(quán),還將介紹如何取消權(quán)限以及從授權(quán)表中刪除全部用戶,并且將考慮一個困擾許多新的MySQL管理員的難題。
您還要考慮使用mysqlaccess 和mysql_setpermission 腳本,它們是MySQL分發(fā)包的組成部分。這些是Perl 的腳本,它們提供了設(shè)置用戶賬號的GRANT 語句的代用品。mysql_setpermission 需要具有DBI 的支持環(huán)境。
創(chuàng)建新用戶和授權(quán)
GRANT 語句的語法如下:
GRANT privileges (columns)
ON what
TO user IDENTIFIEDBY "password"
WITH GRANT OPTION
要使用該語句,需要填寫以下部分:
privileges 分配給用戶的權(quán)限。下表列出了可在GRANT 語句中使用的權(quán)限說明符:
權(quán)限說明符權(quán)限允許的操作
上表顯示的***組權(quán)限說明符適用于數(shù)據(jù)庫、表和列。第二組說明符是管理特權(quán)。通常,這些權(quán)限的授予相當(dāng)保守,因為它們會影響服務(wù)器的操作(例如, SHUTDOWN 特權(quán)不是按每天來分發(fā)的權(quán)限)。第三組說明符是特殊的。ALL的意思是所有的權(quán)限,而USAGE 的意思是無權(quán)限即創(chuàng)建用戶,但不授予任何的權(quán)限。
columns 權(quán)限適用的列。這是可選的,只來設(shè)置列專有的權(quán)限。如果命名多于一個列,則用逗號分開。
what 權(quán)限應(yīng)用的級別。權(quán)限可以是全局的(適用于所有數(shù)據(jù)庫和所有的表)、數(shù)據(jù)庫專有的(適用于某個數(shù)據(jù)庫中的所有表),或表專有的??梢酝ㄟ^指定一個C O L U M N S子句將權(quán)限授予特定的列。
user 使用權(quán)限的用戶。它由用戶名和主機名組成。在MySQL中,不僅指定誰進行連接,還要指定從哪里連接。它允許您擁有兩個帶有相同名字的、從不同位置連接的用戶。MySQL允許在它們之間進行區(qū)別并相互獨立地分配權(quán)限。
MySQL的用戶名就是您在連接到服務(wù)器時指定的名字。該名字與您的UNIX 注冊名或Windows 名的沒有必然連系。缺省設(shè)置時,客戶機程序?qū)⑹褂媚缘拿肿鳛镸ySQL的用戶名(如果您不明確指定一個名字的話),但這只是一個約定。有關(guān)將root作為可以操作一切MySQL的超級用戶名也是這樣,就是一種約定。您也可以在授權(quán)表中將此名修改成nobody,然后作為nobody 用戶進行連接,以執(zhí)行需要超級用戶特權(quán)的操作。
password 分配給該用戶的口令。這是可選的。如果您不給新用戶指定IDENTIFIEDBY子句,該用戶不分配口令(是非安全的)。對于已有的用戶,任何指定的口令將替代舊口令。如果不指定新口令,用戶的舊口令仍然保持不變。當(dāng)您確實要使用ID E N T I F I E DBY 時,該口令串應(yīng)該是直接量,GRANT 將對口令進行編碼。當(dāng)用SET PA S S W O R D語句時,不要使用PASSWORD() 函數(shù)。
WITH GRANT OPTION 子句是可選的。如果包含該子句,該用戶可以將GRANT 語句授予的任何權(quán)限授予其他的用戶??梢允褂迷撟泳鋵⑹跈?quán)的能力授予其他的用戶。
這些就是我要為大家介紹的MySQL數(shù)據(jù)庫的用戶帳號管理基礎(chǔ)知識的全部內(nèi)容,要想學(xué)好MySQL數(shù)據(jù)庫的操作,就應(yīng)首先從基礎(chǔ)做起,這篇文章對很多初學(xué)者來說是很好的選擇。
【編輯推薦】
- MySQL數(shù)據(jù)庫管理常用命令
- 如何利用mysqldump備份MySQL數(shù)據(jù)庫
- 給數(shù)據(jù)減肥 讓MySQL數(shù)據(jù)庫跑的更快
- DBA必備:MySQL數(shù)據(jù)庫常用操作和技巧
新聞標(biāo)題:MySQL數(shù)據(jù)庫的用戶帳號管理基礎(chǔ)知識
鏈接URL:http://www.fisionsoft.com.cn/article/ccoocpp.html


咨詢
建站咨詢
