TiDB管理

一、用户权限管理

1、权限管理

  • 权限相关的数据表

    • mysql.user:用户账户,全局权限

      • user 表的权限是全局的,并且不管默认数据库是哪一个。比如 user 里面有 DELETE 权限,任何一行,任何的表,任何的数据库。
      • User+Host 可能会匹配 user 表里面多行,为了处理这种情况,user 表的行是排序过的,客户端连接时会依次去匹配,并使用首次匹配到的那一行做权限验证。排序是按 Host 在前,User 在后。
    • mysql.db:数据库级别的权限

      db表里面,User 为空是匹配匿名用户,User 里面不能有通配符。Host 和 Db 列里面可以有 %_,可以模式匹配。

    • mysql.tables_priv:表级别的权限

      tables_privcolumns_priv 中使用 % 是类似的,但是在Db, Table_name, Column_name 这些列不能包含 %。加载进来时排序也是类似的。

    • mysql.columns_priv:列级别的权限,当前暂不支持

  • 权限生效时机

    • TiDB 启动时,将一些权限检查的表加载到内存,之后使用缓存的数据来验证权限。系统会周期性的将授权表从数据库同步到缓存,生效则是由同步的周期决定,目前这个值设定的是 5 分钟。
    • 如果授权表已被直接修改,则不会通知 TiDB 节点更新缓存,如果需要立即生效,可以手动执行FLUSH PRIVILEGES;
Copyright Curiouser all right reserved,powered by Gitbook该文件最后修改时间: 2021-07-21 12:57:59

results matching ""

    No results matching ""