本篇文章將會(huì)講述MySQL的權(quán)限校對(duì)規(guī)則、權(quán)限項(xiàng)列表,以及會(huì)從數(shù)據(jù)庫帳號(hào)和權(quán)限的設(shè)置層面,講述如何使我們的數(shù)據(jù)庫訪問或數(shù)據(jù)操縱更安全。
帳號(hào)信息校驗(yàn)規(guī)則
客戶端向mysql數(shù)據(jù)庫服務(wù)器端發(fā)送的連接請(qǐng)求是否成功,除了網(wǎng)絡(luò)、防火墻等因素制約其能否訪問到服務(wù)器外,最重要的是必須提供五個(gè)參數(shù)信息:客戶端的IP地址或主機(jī)名稱、數(shù)據(jù)庫服務(wù)器的IP地址或網(wǎng)絡(luò)域名、數(shù)據(jù)庫訪問的帳號(hào)和對(duì)應(yīng)的密碼,以及數(shù)據(jù)庫服務(wù)運(yùn)行的端口號(hào)。
User表的host字段值
字段host的值要求存儲(chǔ)的字符串長(zhǎng)度不得超過60個(gè)字符,且我們可以發(fā)現(xiàn)該字段的類型為CHAR,主要因表user存儲(chǔ)引擎是:MyISAM,為保持行長(zhǎng)固定,從而以空間換取數(shù)據(jù)的操縱性能提高。
User表的user字段值
字段user存儲(chǔ)的值為訪問數(shù)據(jù)庫的帳號(hào)名稱,要求存儲(chǔ)的字符串長(zhǎng)度不得超過16個(gè)字符且我們同樣可以發(fā)現(xiàn)該字段的類型為CHAR,也是為了保持行場(chǎng)固定。
User表的password字段值
字段password的值為函數(shù)PASSWORD()加密過的暗語,暗語長(zhǎng)度為固定的41個(gè)字符,字段類型也是CHAR,為定長(zhǎng)類型,只有符合字段host和user值得校驗(yàn)通過之后,才會(huì)進(jìn)行密碼字段值得驗(yàn)證。
總述
mysql根據(jù)提供的客戶端IP地址或主機(jī)名稱,以及數(shù)據(jù)庫帳號(hào)名稱,判斷是否存在對(duì)應(yīng)的符合host字段和user字段值匹配規(guī)則的記錄行,系統(tǒng)表user的聯(lián)合主鍵:host、user,可以確定記錄得唯一性,那么我們重點(diǎn)介紹host字段和user字段組合的校對(duì)規(guī)則,以示例的方式給大家闡述:
權(quán)限項(xiàng)列表
權(quán)限項(xiàng)
MySQL提供的權(quán)限項(xiàng),可依據(jù)用處和作用范圍,分為三類:
數(shù)據(jù)庫服務(wù)管理級(jí)別的權(quán)限項(xiàng),此類權(quán)限為全局范圍的;
數(shù)據(jù)庫或數(shù)據(jù)庫內(nèi)所有對(duì)象上的權(quán)限項(xiàng),作用范圍為數(shù)據(jù)庫級(jí)別或數(shù)據(jù)庫全局性質(zhì);
作用于某個(gè)數(shù)據(jù)庫內(nèi)的對(duì)象:表、索引、視圖、存儲(chǔ)過程;
通過GRANT 和REVOKE子句可操縱的權(quán)限項(xiàng)信息,圖1-1:
圖 1-1 來源于mysql手冊(cè)