暂无图片
暂无图片
6
暂无图片
暂无图片
1
暂无图片

MySQL数据克隆的用户权限设计

879

这是学习笔记的第 2295 篇文章

 

最近完成了初版的数据逻辑备份恢复的功能,和业务方做了一些交流和演示,发现他们对于备份恢复侧的一些东东还是不够敏感,因为因为一些术语的差异,他们不大理解所谓的备份恢复能干什么,所以我们做了一些讨论,最后决定改为“数据克隆”。

1.产品定位:

  数据克隆是高效,安全的从通过从线上指定数据库/表克隆数据,从而快速构建虚拟环境,提供更高效的数据交付服务。从效率上可以支持业务自助提取数据,分钟级快速构建环境,可以通过workbench等工具访问数据,整个过程基本不需要DBA手工操作介入。从安全上,支持数据操作日志审计,提供库/表访问过滤,随机虚拟环境和临时密码交付,此外会对虚拟环境使用时长进行限制,尽可能保证数据的使用安全。

2.适用场景:    

  目前数据克隆功能支持如下的场景:

    1)线上配置数据的快速查看 

    2)提取线上表结构

    3)日志数据查询,线上大表

    4)线上SQL异常,快速构建虚拟环境进行SQL优化,压测等

    5)指定大表的变更和数据操作影响评估

    6)数据补丁合并,基于业务逻辑的数据操作和数据补丁整理

整个实现的过程有很多考虑的细节,不过还是在设计和实现中由同事和我一并解决了。

到了交付的时机了,我们想到还有一个关键的地方需要补充,那就是数据库和用户的权限关联,也就意味着每个人可以看到和使用的数据库应该是不大一样的,因为做一些权限隔离,所以接下来我会说说数据克隆方向的用户权限设计。

数据克隆的用户权限设计是面向业务使用的基础功能,目前对于用户权限的设计可以基于数据库级别。

权限的实现可以分两个阶段来完成:

1)数据初始化阶段,可以使用用户组批量初始化的方式,部分数据可以从工单历史中获取

2)定制化配置阶段,根据业务需求变更和组织架构调整进行数据库和用户映射关系的微调

其中,

实例信息和库信息可以基于数据库基线表 mysql_db_baseline

用户组信息和用户信息可以基于用户表 user_info

数据库-用户关系表需要新建,表名为:mysql_db_user_rel(id,ip_addr,db_port,db_name,user_id)

需要实现四个子功能:

1)数据库-用户关系映射,实现单一数据库和单一用户的关系,在关系表中为一条记录

2)数据库-用户关系列表,通过数据库维度(IP+端口+数据库名)查看相关用户列表信息

3)数据库-用户组关系映射,实现单一数据库和单一用户组的关系,具体逻辑为:

a) 输入数据库信息(IP+端口+数据库名),UserID

b) 根据UserID关联用户组信息

c) 根据用户组信息得到组内的UserID列表

d) 循环用户列表,根据数据库-用户关系建立映射,需要考虑重复记录的过滤

4)实例列表信息,根据用户UserID得到归属的实例列表,具体逻辑为:

a) 输入UserID

b) 根据UserID在数据库-用户关系表中得到相关的数据库列表,进一步过滤得到实例IP+端口信息

近期热文:

使用图表分析2020北京积分落户的数据

MySQL 8.0给开发方向带来的一些困扰

关于故障复盘的一些总结

迁移到MySQL的业务架构演进实战

MySQL业务双活的初步设计方案

如何优化MySQL千万级大表,我写了6000字的解读

一道经典的MySQL面试题,答案出现三次反转

小白学MySQL要多久?我整理了10多个问题的答案

转载热文:

SQLcl这个可爱的小工具,来了解一下呀~

CPU占用又爆了?MySQL到底在干什么

这个MySQL优化原理剖析,比照X光还清楚

自己动手写SQL执行引擎

最受欢迎的微服务框架概览

程序员,保住你的钱袋子!

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过


在看,让更多人看到

最后修改时间:2020-11-26 08:53:31
文章转载自杨建荣的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

筱悦星辰
暂无图片
1年前
评论
暂无图片 0
眼宽,能容世间事;心宽,可谅天下人。 愿我们像水一样利万物而不染,惟善下而成海。
1年前
暂无图片 点赞
评论