MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在MySQL数据库中。MySQL数据库系统根据这些权限表的内容来为每个用户赋予权限。其中有user表、db表、table_priv表、column_priv表、proc_priv表等。
①连接核实阶段
MySQL在接收到用户的请求后,会使用user表中的host、user和authentication_string这三个字段匹配客户端信息。如果连接核实没有通过,服务器完全拒绝访问,如果链接核实通过,进入阶段2等待用户请求。
②请求核实阶段
MySQL通过向下层级的顺序检查权限表。顺序为user->db->table_priv->columns_priv。服务器检查该请求要执行什么操作、是否有足够的权限来执行它。