软件系统的访问认证和操作请求权限控制,是多数软件产品的必备功能,MySQL数据库产品也一样,其访问认证机制和操作请求权限控制,并不复杂却很有特色。另外网友们提到对访问认证、操作请求权限控制和维护等没有理清楚,那么分2篇文章编写,力求知识点讲解更加清晰和到位,本文先围绕主题:访问认证机制和操作权限请求权限控制体系。
客户端连接请求认证
MySQL的认证控制,是分二个步骤完成的:连接认证和操作请求认证,这二部分通过2幅流程进行讲解,先看客户端向服务器端发起的数据库连接认证,如图1-1:
连接验证的流程图文字详解:
客户端(Client)连接信息,会传递给服务器端:客户端的hostname或者IP地址、数据库帐号名称、数据库帐号对应的密码、数据库服务的端口号、数据库服务器的IP地址或域名;
备注:我们大多数的时候,都是使用IP地址,而不是域名,使用IP地址可以达到更高效,和减少出问题的机会.
系统数据库表user的主键为2个字段组合:host,user;
Hostname或IP地址的校验:检查传入的IP地址,是否符合帐号对应的hostname字段值对IP地址限制要求;
数据库访问帐号校验:优先检测的就是帐号名称是否能查询到数据,若是找不到对应的话,那么剩下的比对信息都毫无意义,但是在系统表user中,可能存在多个帐号名相同,甚至密码相同,但是IP地址限制字段host值不一致;
数据库访问帐号的密码校验:查找user和host组合唯一确定的记录集中,password字段的值与客户端传入的值进行加密后是否一致;
客户端操作请求认证
当客户端的连接请求,被mysql服务器端通过其身份认证,那么接下来就可以发送数据库的操作命令给服务器端处理,但是操作请求必须是其数据库连接帐号所拥有的权限范围之内,否则将会被提示因权限不足而拒绝。首先,我们用流程图的方式,告诉大家数据库操作所需要的权限检测架构,如图1-2所示。
客户端操作请求的权限验证文字描述:
数据库系统中存储的权限信息,mysqld服务启动的时候,都会加载到内存中;
通过权限操纵语句增删帐号、修改帐号权限,都会修改内存中的数据;
通过SQL语句直接操纵系统权限信息表,则需要人为执行FLUSH PRIVILEGES,才会从磁盘上增加到内存中;
数据库操作所需要的权限,权限系统首先是查阅user表中登记的帐号权限信息,对应列设置为:Y,即是拥有的;若是N,则是无此权限。表User中的权限信息是具有全局性的;
MySQL权限是由高到低非逐项检测过程,即查阅到帐号拥有范围更大的权限,被其包含的低级别权限要求,就不再进行检查,只有查阅的高级权限不存在的时候,才会继续向粒度更细的权限检测点搜索;
解释下表db和表host特殊关系,若是把一个数据库上的操作权限,只赋予网络中某一些主机,那么可以在db表中不填写任何记录信息,但是在表host中添加对应的信息即可,每一条信息对应一台被允许的主机;
表db中 有2条默认的特殊记录,其字段Db的值分别为:test、test_%,而且user字段的值为:空字符串,其中权限项只有:Grant_priv、Alter_routine_priv、Execute_priv的值为:N,其他权限项的值都为:Y,则表示任何用户都在以test或test字符开头名称的数据库上,除三项权限之外的任何权限。为此,大家若不想任何人看见系统默认创建的数据库:test,而是由权限才允许的话,只要把这2条数据删除即可;
表 user中有默认创建的记录,其中包过允许任何匿名的用户登录,以及允许root帐号远程登录,以及帐号都没有设置密码,为此大家必须消除此的方便性而带来的极大隐患;
本文的篇幅,主要是简单地给大家介绍mysql权限认证体系架构,分二个阶段进行,分别是连接请求和操作请求,然后操作请求才会被允许执行,后续会再写一片文章,介绍mysql权限系统中的账号密码等信息,应该如何维护和设置,才可以确保mysql系统更加安全。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
2017年5月数据库流行度排行榜 MySQL与Oracle“势均力敌”
数据库知识网站DB-engines.com最近更新了2017年5月的数据库流行榜单。TechTarget继续与您一起分享最新的榜单情况。
-
2017年3月数据库流行度排行榜 Oracle卫冕之路困难重重
时隔一个月,数据库市场经过一轮“洗牌”,旧的市场格局是否会被打破,曾经占巨大市场份额的企业是否可能失去优势?