【TiDB 4.0 PCTA 学习笔记】- 3.8.1 Authentication and Authorization(TiDB 的授权与认证) @2班+李响

课程名称:3.8.1 Authentication and Authorization(TiDB 的授权与认证)

学习时长:

20分钟

课程收获:

理解用户登陆验证的过程,掌握权限的原理和使用。

课程内容:

一、Authentication
1.What happen when a client connect to TiDB
image

  • Server发送握手消息包,包含:
    • 服务器的Capability
    • 密码验证的值
  • Client接收消息包后,包含:
    • 通过使用双方的Capability交集来决定协议的细节
    • 可能会升级成SSL协议
  • Client返回消息,包含:
    • 登录认证信息
  1. Where is the account information stored
    image
  • mysql.user表用于存放用户信息
  • 登陆时服务器会匹配登陆信息
  • 认证失败会拒绝连接
    image
  • 认证包含用户名+Host
  • Host表示登陆IP,%代表任意位置
    image
  • authentication_string字段存储的并非密码
  • 密码不会以明文存储或传输
  1. How is the password encrypted
    authentication_string和password类似于公钥和私钥
  • 服务器发送随机种子字符串给客户端
  • 客户端用私钥将原始密码加密
  • 服务端用公钥authentication_string去解码
  • mysql_native_password并不是真正意义使用公钥和私钥,authentication_string是经过hash之后的形式
    image

二、Authorization
1.Privileges provided by TiDB

  • TiDB大部分权限与MySQL相同
  • 用户权限决定了他可以访问的数据库和表
    image
  • 权限的记录存储在mysql.user、mysql.db、mysql.tables_priv表中
    • GRANT select ON . TO ‘user’@‘host’(*.*为全局级别授权,数据存储在mysql.user表)
    • GRANT insert ON db.* TO ‘user’@‘host’(db.*为数据库级别授权,数据存储在mysql.db表)
    • GRANT update ON db.table TO ‘user’@‘host’(db.table为表级别授权,数据存储在mysql.tables_priv表)
      2.Request Verification
  • 如果用户没有相应授权,执行操作就会失败
  • 检查权限过程
  1. RBAC(TiDB4.0后开始支持role based access control)
  • 创建角色
    image
  • 为角色赋权
    image
  • 创建用户
    image
  • 将角色授予给用户
    image
  • 激活角色
    image
  • 用户便拥有相关的权限
    image

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。