• 技术文章 >数据库 >MySQL

    数据库mysql如何访问控制?有哪些阶段?

    小妮浅浅小妮浅浅2020-12-03 16:32:29原创3868

    我们在访问一个网页时,只需要点击链接就可以轻松浏览,当然这只是访问在用户界面的一个展现。我们学习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表,看是否具有数据库级别的权限,如果有,则执行,没有则继续下一步检查4)最后到tables_priv, columns_priv, procs_priv表里查看是否具有相应对象的权限从以上的过程我们可以知道,MySQL检查权限是一个比较复杂的过程,所以为了提高性能,MySQL的启动时就会把这5张权限表加载到内存。


    关于mysql的一些补充:

    windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。

    而Linux中启动时可用"/etc/rc.d/init.d/mysqld start”命令,注意启动者应具有管理员权限。

    MySql默认包含一个含空密码的root帐户和一个匿名帐户,应把匿名帐户删除、 root帐户设置密码。


    以上就是关于mysql访问控制两个阶段的介绍,本篇不涉及代码的运行,只要理解的基础的mysql访问控制原理就好了,没看明白的小伙伴们可以多研究一下。

    专题推荐:数据库mysql
    上一篇:表格备注如何在数据库mysql中实现? 下一篇:mysql中数值型数据有哪两个类别?

    相关文章推荐

    • 数据库mysql与sql server优缺点有哪些?哪个好?• 数据库mysql中的命令有哪些?需要注意什么?• 表格备注如何在数据库mysql中实现?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网