【MYSQL】許可權何時生效
阿新 • • 發佈:2018-12-20
當mysqld啟動時,所有的許可權都會被載入到記憶體中。
如果使用GRANT/REVOKE/SET PASSWORD/RENAME USER命令來更改資料庫中的許可權表,mysqld伺服器將會注意到這些變化並立即載入更新後的許可權表至記憶體中,即許可權生效;
如果使用INSERT/UPDATE/DELETE語句更新許可權表,則記憶體中的許可權表不會感知到資料庫中許可權的更新,必須重啟伺服器或者使用FLUSH PRIVILEGES命令使更新的許可權表載入到記憶體中,即許可權需在重啟伺服器或者FLUSH PRIVILEGES之後方可生效。
許可權生效的含義:
1、表級別/列級別的許可權,
當更新後的許可權載入至記憶體表中,已存在的會話下一次請求時可使用該許可權,在修改許可權後的建立的會話則立即生效;
表級別的許可權如:grant select on wjf.tab1 to wjf;
2、資料庫級別的許可權,
當更新後的許可權載入至記憶體表中,已存在會話下一次使用USE db_name後,可使用該許可權,在修改許可權後的建立的會話則立即生效;
資料庫級別許可權如:grant select on wjf.* to wjf;
3、全域性許可權或者修改密碼,
當更新後的許可權載入至記憶體表中,需要在下一次登入mysqld後,可使用該許可權或密碼,對已存在會話不起作用.
全域性許可權如:grant all privilges on *.* to wjf;