加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

一文总结MySQL数据库访问控制实现原理

发布时间:2019-12-23 05:29:32 所属栏目:资源 来源:今日头条
导读:MySQL 访问控制实际上由两个功能模块共同组成,一个是负责“看守 MySQL 大门”的用户管理模块,另一个就是负责监控来访者每一个动作的访问控制模块。用户管理模块决定用户是否能登陆 数据库 ,而访问控制模块则决定在数据库中具体可以做的事。下面是一张 M
  MySQL 访问控制实际上由两个功能模块共同组成,一个是负责“看守 MySQL 大门”的用户管理模块,另一个就是负责监控来访者每一个动作的访问控制模块。用户管理模块决定用户是否能登陆数据库,而访问控制模块则决定在数据库中具体可以做的事。下面是一张 MySQL 中实现访问控制的简单流程图。  一文总结MySQL数据库访问控制实现原理  1. 用户管理  在 MySQL 中,用户访问控制部分的实现比较简单,所有授权用户都存放在一个系统表中:mysql.user,当然这个表不仅仅存放了授权用户的基本信息,还存放有部分细化的权限信息。用户管理模块需要使用的信息很少,主要就是Host,User,Password 这三项,都在 mysql.user 表中 一文总结MySQL数据库访问控制实现原理  2. 访问控制  当客户端连接通过用户管理模块的验证,可连接上 MySQL Server 之后,就会发送各种Query 和 Command 给 MySQL Server,以实现客户端应用的各种功能。当 MySQL 接收到客户端的请求之后,访问控制模块是需要校验该用户是否满足提交的请求所需要的权限。权限校验过程是从最大范围的权限往最小范围的权限开始依次校验所涉及到的每个对象的每个权限。  在验证所有所需权限的时候,,MySQL 首先会查找存储在内存结构中的权限数据,首先查找 Global Level 权限,如果所需权限在 Global Level 都有定义(GRANT 或者 REVOKE),则完成权限校验(通过或者拒绝),如果没有找到所有权限的定义,则会继续往后查找Database Level 权限,进行 Global Level 未定义的所需权限的校验,如果仍然没有能够找到所有所需权限的定义,MySQL 会继续往更小范围的权限定义域查找,也就是 Table Level,最后则是 Column Level 或者 Routine Level。  3. 五个授权表  mysql数据库包含五个主要的授权表。  user表:包含用户帐户和全局权限列。MySQL使用user表来接受或拒绝来自主机的连接。 在user表中授予的权限对MySQL服务器上的所有数据库都有效。  db表:包含数据库级权限。MySQL使用数据库表来确定用户可以访问哪个数据库以及哪个主机。在db表中的数据库级授予的特权适用于数据库,所有对象属于该数据库,例如表,触发器,视图,存储过程等。  table_priv和columns_priv表:包含表级和列级权限。 在table_priv表中授予的权限适用于表及其列,而在columns_priv表中授予的权限仅适用于表的特定列。  procs_priv表:包含存储函数和存储过程的权限。  4. 参考访问授权策略  这里附一份我平时做mysql数据库授权的策略,仅供参考。  //针对root账号

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读