我们在访问一个网页时,只需要点击链接就可以轻松浏览,当然这只是访问在用户界面的一个展现。我们学习python的时候,更多的倾向于内部的搭建和原理的理解。有没有小伙伴对mysql的访问产生兴趣呢?这里的访问跟我们之前提到的浏览界面访问有所不同,接下来就数据库mysql的访问控制和其中的两个阶段一起进行深入探索。
MySQL访问控制分为两个阶段:
用户连接检查阶段
执行SQL语句时检查阶段
1、用户连接时的检查
1)当用户连接时,MySQL服务器首先从user表里匹配host, user, password,匹配不到则拒绝该连接2)接着检查user表的max_connections和max_user_connections,如果超过上限则拒绝连接3)检查user表的SSL安全连接,如果有配置SSL,则需确认用户提供的证书是否合法只有上面3个检查都通过后,服务器才建立连接,连接建立后,当用户执行SQL语句时,需要做SQL语句执行检查。
2、执行SQL语句时的检查
1)从user表里检查max_questions和max_updates,如果超过上限则拒绝执行SQL下面几步是进行权限检查:2)首先检查user表,看是否具有相应的全局性权限,如果有,则执行,没有则继续下一步检查3)接着到db表,看是否具有数据库级别的权限,如果有,则执行,没有则继