mysql def許可權 MySQL許可權管理

2021-10-18 06:54:01 字數 1338 閱讀 9223

我們先了解何時 mysql 存放於記憶體結構中的許可權資訊被更新: flush privileges 會強行讓 mysql 更新 load 到記憶體中的許可權資訊; g

檢視使用者許可權

show grants for 你的使用者

比如:show grants for root@'localhost';

mysql 5種許可權級別:global level,database level,table level,column level,routine level。高階別會覆蓋低階別的許可權。

給使用者賦權,與撤消許可權

grant select,update,delete,insert on *.* to 'def'@'localhost';

revoke select,update,delete,insert on *.* from 'def'@'localhost';

許可權相關表儲存在資料庫mysql中,有user, db, host, tables_priv, columns_priv, procs_priv, proxies_priv。

--檢視當前使用者

select user();

--檢視所有使用者

select host,user,password from mysql.user order by user;

我們先了解何時 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 」 命令。

mysql def許可權 mysql使用者許可權管理

mysql資料在實際生產環境中大量被使用,那平時在做好伺服器上防火牆策略以外平時,對mysql下的使用者許可權也要嚴格管理,mysql的使用者許可權都是放在mysql.user這張表裡,平時的使用者許可權管理都是隱式使用著這張表的,先說下許可權 許可權意義 select查詢 insert插入 upd...

mysql 重新整理許可權 mysql許可權

1,檢視所有使用者許可權 select distinct concat user user,host,as query from mysql.user 或者 select from mysql.user 2,檢視某乙個使用者的許可權 show grants for user ip 3,分配許可權 以...

mysql許可權 列許可權 mysql 的許可權體系介紹

mysql 的許可權體系大致分為5個層級 全域性層級 全域性許可權適用於乙個給定伺服器中的所有資料庫。這些許可權儲存在mysql.user表中。grant all on 和revoke all on 只授予和撤銷全域性許可權。資料庫層級 資料庫許可權適用於乙個給定資料庫中的所有目標。這些許可權儲存在...