MySQL權(quán)限管理 |
發(fā)布時(shí)間: 2012/9/6 17:01:27 |
查看用戶權(quán)限 mysql 5種權(quán)限級(jí)別:global level,database level,table level,column level,routine level。高級(jí)別會(huì)覆蓋低級(jí)別的權(quán)限。 REVOKE SELECT,UPDATE,DELETE,INSERT ON *.* FROM 'def'@'localhost'; --查看當(dāng)前用戶 我們先了解何時(shí) MySQL 存放于內(nèi)存結(jié)構(gòu)中的權(quán)限信息被更新: FLUSH PRIVILEGES 會(huì)強(qiáng)行讓 MySQL 更新 Load 到內(nèi)存中的權(quán)限信息; GRANT 、 REVOKE 或者 CREATE USER 和 DROP USER 操作會(huì)直接更新內(nèi)存中的權(quán)限信息;重啟 MySQL 會(huì)讓 MySQL 完全從 grant tables 中讀取權(quán)限信息。 那內(nèi)存結(jié)構(gòu)中的權(quán)限信息更新之后對(duì)已經(jīng)連接上的用戶何時(shí)生效呢?對(duì)于 Global Level 的權(quán)限信息的修改,僅僅只有更改之后新建連接才會(huì)用到,對(duì)于已經(jīng)連接上的 session 并不會(huì)受到影響。而對(duì)于 Database Level 的權(quán)限信息的修改,只有當(dāng)客戶端請(qǐng)求執(zhí)行了 “ USE database_name ” 命令之后,才會(huì)在重新校驗(yàn)中使用到新的權(quán)限信息。所以有些時(shí)候如果在做了比較緊急的 Global 和 Database 這兩個(gè) Level 的權(quán)限變更之 后 ,可能需要通過 “ KILL ” 命令將已經(jīng)連接在 MySQL 中的 session 殺掉強(qiáng)迫他們重新連接以使用更新后的權(quán)限。對(duì)于 Table Level 和 Column Level 的權(quán)限,則會(huì)在下一次需要使用到該權(quán)限的 Query 被請(qǐng)求的時(shí)候生效,也就是說,對(duì)于應(yīng)用來講,這兩個(gè)Level 的權(quán)限,更新之后立刻就生效了,而不會(huì)需要執(zhí)行 “ KILL ” 命令。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |