对某张表是否有权限进行查询或者更新感觉在分析器也就是在词法分析,语法分析之后就能得出吧?语法错误,表和列的错误等都应该在语法分析阶段被发现吧;
根据下面的论述
分析器
1.词法分析:从"SELECT" 识别是查询语句,把字符串“T”识别成“表名T”,把字符串“ID”识别成“列ID”
2.语法分析:根据与语法规则判断SQL语句是否满足MySQL语法
一般语法错误会提示第一个出错位置,要关注的是紧接“use near”的内容
优化器
优化器在表里有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序
执行器
1.在执行之前,判断时候有执行的权限
2.命中查询缓存,在返回结果时做权限验证
3.查询会在优化器之前调用precheck验证权限
查询或者更新权限的校验似乎在执行器阶段处理的,这个很诡异啊
执行器。
https://time.geekbang.org/column/article/68319