1、MySQL首先判断是否可以用query_cache返回客户端,在此之前没有检查过权限;
调用的函数为query_cache_send_result_to_client(),在此函数中,MySQL会对相关权限进行检查;
2、只要不能通过query_cache_send_result_to_client()返回数据集,那么MySQL就会解析客户端发送的SQL,调用的函数为parse_sql(),如果parse_sql()没有出错,那就会执行mysql_execute_command();
3、在mysql_execute_command()中,MySQL会对相关权限进行检查;
4、然后进行相关语句的执行。
注:本文仅说明执行select的情况。
涉及代码:sql/mysqld.cc, sql/sql_cache.cc, sql/sql_parse.cc
阅读(585) | 评论(0) | 转发(0) |