专栏首页杨建荣的学习笔记MySQL数据克隆的用户权限设计

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

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

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+端口信息

本文分享自微信公众号 - 杨建荣的学习笔记(jianrong-notes),作者:杨建荣

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通过数据建模梳理数据库业务

    一直以来对于MySQL的binlog日志的统计和分析是工作中的重点内容,因为通过日志量这样一个维度能够反映出数据库的变化情况,但是显然MySQL官方没有...

    jeanron100
  • 说说数据库排行榜的事情

    曾几何时,自己也喜欢看开发语言排行榜,某个语言这个月分数高了,那个月低了,总能掀起不少的口水仗。争着争着,就跟小孩子过家家一样,一切都被时间冲淡了。 这种感觉...

    jeanron100
  • 一个跨平台数据迁移的方案优化

    如果有一套环境,业务优先级很高,服务器的服役时间比我工作时间都长,现在需要迁移到X86平台,而且经过评估,如果能够升级数据库的软件版本,可以使用到更多的特...

    jeanron100
  • 作为开发者犯过的两次愚蠢的错误 一定切记切记

    上周我和同事们简单地聊了聊我们工作中搞砸的那些事儿。如今早已不再犯那些错了,所以想起过去就觉得很好笑。但是笑归笑,其实当时犯的这些错让我们受益颇深。

    java架构师
  • 聊聊数据库的未来,写在 PingCAP 成立五周年之际

    五年前创业的出发点其实很朴素:做一个更好的分布式数据库。从学术的角度上看起来,并不是提出了什么惊天地泣鬼神的神奇算法,我们选择的 Shared-nothing ...

    PingCAP
  • 【Javaweb】59:数据库基本操作

    昨天安装了MySQL数据库,也就是说我这台电脑理论上是可以作为数据库服务器的,用户可以连接这台电脑中的数据库。

    刘小爱
  • 数据播报 | 谷歌帝国将如何崩塌 从不远的后谷歌时代发来报道

    大数据文摘
  • 如何设计企业级大数据分析平台?

    传统企业的OLAP几乎都是基于关系型数据库,在面临“大数据”分析瓶颈,甚至实时数据分析的挑战时,在架构上如何应对?本文试拟出几个大数据OLAP平台的设计要点,...

    企鹅号小编
  • 微服务知识科普

    好处:实现跨团队的解藕,实现更高的并发(目前单机只能实现c10k)不用在拷贝代码,基础服务可以公用,更好的支持服务治理,能够更好的兼容云计算平台。

    纯洁的微笑
  • 西工大开源拥挤人群数据集生成工具,大幅提升算法精度 | CVPR 2019

    近年来,因为拥挤人群计数在视频监控、公共安全方面的应用广泛,引起了不少学者的关注。

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券