grant 之后是否要跟着 flush privileges

grant 语句会同时修改数据表和内存,判断权限的时候使用的是内存数据。所以规范地使用 grant 和 revoke 语句,是不需要加上 flush privileges 语句的。
 
flush privileges 语句本身会用数据表的数据重建一份内存权限数据,所以在权限数据可能不一致的情况下再使用。
 

当我们通过SQL语句直接修改权限系统表来修改权限时,权限缓存是没有更新的,这样会导致权限缓存和系统表不一致。因此通过这种方式修改权限后,应执行FLUSH PRIVILEGES来刷新缓存,从而使更新的权限生效。

通过GRANT/REVOKE/CREATE USER/DROP USER来更新权限是不需要FLUSH PRIVILEGES的。

 

猜你喜欢

转载自www.cnblogs.com/liang545621/p/12606843.html