資源描述:
《MySQL數(shù)據(jù)庫管理之權(quán)限管理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、多備份 MYSQL數(shù)據(jù)庫管理之權(quán)限管理 小編做客服有一陣子了,總是有人在QQ群或者論壇上問關(guān)于mysql權(quán)限的問題,今天就總結(jié)一下關(guān)于MYSQL數(shù)據(jù)庫的權(quán)限管理的經(jīng)驗(yàn)。希望大家看完有所收獲啦~ 一、MYSQL權(quán)限簡(jiǎn)介 關(guān)于mysql的權(quán)限簡(jiǎn)單的理解就是mysql允許你做你權(quán)利以內(nèi)的事情,不可以越界。比如只允許你執(zhí)行select操作,那么你就不能執(zhí)行update操作。只允許你從某臺(tái)機(jī)器上連接mysql,那么你就不能從除那臺(tái)機(jī)器以外的其他機(jī)器連接mysql。那么MYSQL的權(quán)限是如何實(shí)現(xiàn)的呢?這就要說到mysql的兩階段的驗(yàn)證,下面詳細(xì)來介紹:第一階段:服務(wù)器首先會(huì)檢查你是否允許連接
2、。因?yàn)閯?chuàng)建用戶的時(shí)候會(huì)加上主機(jī)限制,可以限制成本地、某個(gè)IP、某個(gè)IP段、以及任何地方等,只允許你從配置的指定地方登錄。后面在實(shí)戰(zhàn)的時(shí)候會(huì)詳細(xì)說關(guān)于主機(jī)的限制。第二階段:如果你能連接,MYSQL會(huì)檢查你發(fā)出的每個(gè)請(qǐng)求,看你是否有足夠的權(quán)限實(shí)施它。比如你要更新某個(gè)表、或者查詢某個(gè)表,MYSQL會(huì)檢查你對(duì)哪個(gè)表或者某個(gè)列是否有權(quán)限。再比如,你要運(yùn)行某個(gè)存儲(chǔ)過程,MYSQL會(huì)檢查你對(duì)存儲(chǔ)過程是否有執(zhí)行權(quán)限等。 MYSQL到底都有哪些權(quán)限呢?從官網(wǎng)復(fù)制一個(gè)表來看看: 權(quán)限權(quán)限級(jí)別權(quán)限說明 CREATE數(shù)據(jù)庫、表或索引創(chuàng)建數(shù)據(jù)庫、表或索引權(quán)限 DROP數(shù)據(jù)庫或表刪除數(shù)據(jù)庫或表權(quán)限 GRA
3、NTOPTION數(shù)據(jù)庫、表或保存的程序賦予權(quán)限選項(xiàng) REFERENCES數(shù)據(jù)庫或表 ALTER表更改表,比如添加字段、索引等 DELETE表刪除數(shù)據(jù)權(quán)限 INDEX表索引權(quán)限 INSERT表插入權(quán)限 SELECT表查詢權(quán)限 UPDATE表更新權(quán)限 CREATEVIEW視圖創(chuàng)建視圖權(quán)限 SHOWVIEW視圖查看視圖權(quán)限 ALTERROUTINE存儲(chǔ)過程更改存儲(chǔ)過程權(quán)限 CREATEROUTINE存儲(chǔ)過程創(chuàng)建存儲(chǔ)過程權(quán)限 EXECUTE存儲(chǔ)過程執(zhí)行存儲(chǔ)過程權(quán)限多備份 FILE服務(wù)器主機(jī)上的文件訪問文件訪問權(quán)限 CREATETEMPORARYTABLES服務(wù)器管理創(chuàng)
4、建臨時(shí)表權(quán)限 LOCKTABLES服務(wù)器管理鎖表權(quán)限 CREATEUSER服務(wù)器管理創(chuàng)建用戶權(quán)限 PROCESS服務(wù)器管理查看進(jìn)程權(quán)限 RELOAD服務(wù)器管理執(zhí)行 flush-hosts,flush-logs,flush-privileges,flush-status,flush-tables,flush-threads,refresh,reload等命令的權(quán)限 REPLICATIONCLIENT服務(wù)器管理復(fù)制權(quán)限 REPLICATIONSLAVE服務(wù)器管理復(fù)制權(quán)限 SHOWDATABASES服務(wù)器管理查看數(shù)據(jù)庫權(quán)限 SHUTDOWN服務(wù)器管理關(guān)閉數(shù)據(jù)庫權(quán)限 SUPER
5、服務(wù)器管理執(zhí)行kill線程權(quán)限 MYSQL的權(quán)限如何分布,就是針對(duì)表可以設(shè)置什么權(quán)限,針對(duì)列可以設(shè)置什么權(quán)限等等,這個(gè)可以從官方文檔中的一個(gè)表來說明: 權(quán)限分布可能的設(shè)置的權(quán)限表權(quán)限'Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter'列權(quán)限'Select','Insert','Update','References'過程權(quán)限'Execute','Alter,Routine','Grant' 針對(duì)權(quán)限這部分,最主要的是要知道MYSQL是如何驗(yàn)證的(兩階段驗(yàn)證),
6、以及mysql各個(gè)權(quán)限是做什么用的,以及那些權(quán)限用在什么地方(表or列?)。如果這些把握了那么MYSQL權(quán)限對(duì)你來說就是小菜一碟了,只要看一下后面的權(quán)限管理就可以融會(huì)貫通了?! 《?、MYSQL權(quán)限經(jīng)驗(yàn)原則 權(quán)限控制主要是出于安全因素,因此需要遵循一下幾個(gè)經(jīng)驗(yàn)原則: 1.只授予能滿足需要的最小權(quán)限,防止用戶干壞事。哈哈。比如用戶只是需要查詢,那就只給select權(quán)限就可以了,不要給用戶賦予update、insert或者delete權(quán)限?! ?.創(chuàng)建用戶的時(shí)候限制用戶的登錄主機(jī),一般是限制成指定IP或者內(nèi)網(wǎng)IP段?! ?.初始化數(shù)據(jù)庫的時(shí)候刪除沒有密碼的用戶。安裝完數(shù)據(jù)庫的時(shí)候會(huì)自動(dòng)創(chuàng)建
7、一些用戶,這些用戶默認(rèn)沒有密碼?! ?.為每個(gè)用戶設(shè)置滿足密碼復(fù)雜度的密碼。多備份 5.定期清理不需要的用戶?;厥諜?quán)限或者刪除用戶?! ∪YSQL權(quán)限實(shí)戰(zhàn) 1.GRANT命令使用說明 先來看一個(gè)例子,創(chuàng)建一個(gè)只允許從本地登錄的超級(jí)用戶feihong,并允許將權(quán)限賦予別的用戶,密碼為test@feihong.111 GRANTALLPRIVILEGESON*.*TOfeihong@'localhost'IDENTIFIED