MySQL權限管理 |
發布時間: 2012/9/6 17:01:27 |
查看用戶權限 mysql 5種權限級別:global level,database level,table level,column level,routine level。高級別會覆蓋低級別的權限。 REVOKE SELECT,UPDATE,DELETE,INSERT ON *.* FROM 'def'@'localhost'; --查看當前用戶 我們先了解何時 MySQL 存放于內存結構中的權限信息被更新: FLUSH PRIVILEGES 會強行讓 MySQL 更新 Load 到內存中的權限信息; GRANT 、 REVOKE 或者 CREATE USER 和 DROP USER 操作會直接更新內存中的權限信息;重啟 MySQL 會讓 MySQL 完全從 grant tables 中讀取權限信息。 那內存結構中的權限信息更新之后對已經連接上的用戶何時生效呢?對于 Global Level 的權限信息的修改,僅僅只有更改之后新建連接才會用到,對于已經連接上的 session 并不會受到影響。而對于 Database Level 的權限信息的修改,只有當客戶端請求執行了 “ USE database_name ” 命令之后,才會在重新校驗中使用到新的權限信息。所以有些時候如果在做了比較緊急的 Global 和 Database 這兩個 Level 的權限變更之 后 ,可能需要通過 “ KILL ” 命令將已經連接在 MySQL 中的 session 殺掉強迫他們重新連接以使用更新后的權限。對于 Table Level 和 Column Level 的權限,則會在下一次需要使用到該權限的 Query 被請求的時候生效,也就是說,對于應用來講,這兩個Level 的權限,更新之后立刻就生效了,而不會需要執行 “ KILL ” 命令。 本文出自:億恩科技【www.vbseamall.com】 |