天天看點

grant 之後是否要跟着 flush privileges

grant 語句會同時修改資料表和記憶體,判斷權限的時候使用的是記憶體資料。是以規範地使用 grant 和 revoke 語句,是不需要加上 flush privileges 語句的。

flush privileges 語句本身會用資料表的資料重建一份記憶體權限資料,是以在權限資料可能不一緻的情況下再使用。

當我們通過SQL語句直接修改權限系統表來修改權限時,權限緩存是沒有更新的,這樣會導緻權限緩存和系統表不一緻。是以通過這種方式修改權限後,應執行FLUSH PRIVILEGES來重新整理緩存,進而使更新的權限生效。

通過GRANT/REVOKE/CREATE USER/DROP USER來更新權限是不需要FLUSH PRIVILEGES的。