MySQL:修改权限会立即生效吗?

259 阅读1分钟

今天和朋友讨论一个问题,如果回收权限会立即生效,官方文档

image.png

代码函数备忘:

mysql.taobao.org/monthly/201…

  • GLOBAL级别权限 每个session 初始化建立,函数check_access sctx->master_access 是从 mysql.user 表中获得的 Global 级别的权限,在用户和数据库建立连接就会初始化,因此是会话级别生效的,修改了不会立即生效

  • DB级别权限,切换库生效(use db) 这里貌似和阿里内核月报说的不一样,acl_get函数,acl_cache好像为一个全局变量,因此修改了就生效,但是切换db才判断 此处:

  if (!db_is_pattern && (entry=(acl_entry*) acl_cache->search((uchar*) key, key_length)))

image.png

  • table级别权限,check_grant函数,没看这个函数,抄袭阿里内核月报,应该是全局变量,立即生效。