Skip to content

Latest commit

 

History

History
33 lines (20 loc) · 1.07 KB

File metadata and controls

33 lines (20 loc) · 1.07 KB

访问控制

MySQL 的访问控制大体可以理解为两个阶段:先判断“能不能连进来”,再判断“连进来后能做什么”。

连接核实阶段

连接核实阶段主要解决的是:

  • 当前用户是否存在
  • 是否允许从当前主机连接
  • 密码是否正确

也就是说,数据库会先根据用户名、主机和认证信息确认这个连接请求是否合法。

如果这个阶段失败,用户甚至无法建立连接。

请求核实阶段

连接成功之后,MySQL 还会继续判断用户是否有权限执行当前请求。

例如:

  • 是否有权访问某个数据库
  • 是否可以查询某张表
  • 是否可以执行 INSERTUPDATEDELETE
  • 是否可以执行存储过程、查看视图等

如果没有权限,请求会被拒绝,即使用户已经成功登录。

小结

访问控制的核心逻辑是“两步走”:先验证连接身份,再验证操作权限。理解这个过程后,很多“为什么能登录但不能执行 SQL”或者“为什么根本连不上”的问题就更容易分析。