当前位置: 首页 > news >正文

私有云MySQL多租户权限的初版设计

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

读完需要

9

分钟

速读仅需5分钟

关于MySQL私有云平台的方案设计,最从开始要基于RDS的设计方式到现在的迭代,其实还是走过了一段旅程,也算是比较坎坷,我来总结一些思路。

1.首先是实例的概念解释:

通常和业务所说的实例和数据库的实例有一些差别,虽然粒度都是IP和端口。

从业务角度来说:

1)对于单实例环境,实例为单实例本身(IP/域名和端口)

2)对于主从环境,实例为相应的主库环境(IP/域名和端口,暂不可考虑读写分离);

3)对于集群环境,实例为相应的代理服务入口

如果仅存在一个代理,实例为代理IP/域名和端口

如果代理层实现负载均衡,则为相应的service_name和端口

从DBA的角度来说:

实例,主机,集群都是相对独立但又密切关联的模块。 

1)对于单实例环境,实例为单实例本身(IP/域名和端口)

2)对于主从环境,实例为相应的主库和从库环境(IP/域名和端口);

3)对于集群环境,实例为相应的分片节点,包括分片节点主库和从库

2.然后是租户的概念:

租户这个概念该怎么理解,其实可以分很多维度,但是不过怎么来说,他需要有一个统一的业务属性,可以是项目经理,或者是业务部门管理者。

在数据库层面,理论上一个实例,多个实例都可以归属于一个租户,但是从数据库层面来说,建议租户的粒度可以细化到一个实例,一个实例下面有多个DB实现租户成员多元化管理。

租户管理在实例层面的管理都是基于实例这一个基础的维度。

有的同学可能会说租户是不是会很多,其实从使用来说,不会感觉到很多。

因为在一个用户登录之后,他能够看到的实例其实就已经做好了第一层的过滤,他看到的实例列表是有限的。而实例在业务层面的粒度其实和数据库层面的实例概念存在一些偏差,对于业务来说会屏蔽一些不必要的信息。要做某个数据库的管理,是基于某个实例而言,所以一个开发人员可以归属于多个租户,而一个实例下的数据库只能归属于一个租户。

2.然后是租户权限的设计:

权限体系的基础设计,我们可以需要做到租户层级的管理,同时也需要做到租户间的隔离性。

比如一个用户A请了一个实例,他是某某业务的负责人,那么这个用户A就是一个租户管理员,他创建实例的时候就会生成一条租户注册信息,同时会生成相应的租户账号信息,在这个基础上租户管理员(用户A)可以给其他租户成员(如用户B,用户C)等赋予相应的实例管理权限。

稍后可以进行新建数据库等操作,创建数据库后可以把租户下的数据库(比如数据库A,数据库B,数据库C)的相关权限赋予相应的租户成员,这样虽然都是一个租户内,但是他们的权限可以存在差异化。

整体的设计如下图所示:

要进行基于数据库的一些常规操作(比如创建表,修改数据等)时,租户成员的差异化就会显现出来了。

 按照预设的场景,整个基础的管理部分,DBA可以提供后端的技术支撑,同时可以和业务操作紧密结合起来,这其中的一把尺子就是资源成本。

而DBA的服务就可以实现多样化。

基础服务有高可用,分布式,读写分离,备份恢复等,

业务服务有SQL审核,SQL慢日志优化,SQL自助优化,业务巡检和监控查询等。

 

订阅我的微信公众号“杨建荣的学习笔记”,第一时间免费收到文章更新。别忘了加星标,以免错过新推送提示。

7

   

近期热文

你可能也会对以下话题感兴趣。点击链接就可以查看。

  • 使用Python分析北京积分落户数据,分析完我陷入了深思

  • MySQL的主键命名挺任性,就这么定了

  • 华裔教授发现二次方程极简解法,我默默的做了下验算

  • 回答:我不小心把公司的数据库给删了,该不该离职?

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

  • 数据库修改密码风险高,如何保证业务持续,这几种密码双活方案可以参考

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

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

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

  • 业务双活的数据切换思路设计(下)

  • 业务双活的数据切换思路设计(一)

  • MySQL中的主键和rowid,看似简单,其实有一些使用陷阱需要注意

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

8

   

转载热文

你可能也会对以下话题感兴趣,文章来源于转载,点击链接就可以查看。

  • 去IOE or Not?

  • 拉里·佩奇(Larry Page)的伟大归来

  • 《吊打面试官》系列-Redis基础

  • 唯一ID生成算法剖析,看看这篇就够了

  • 关于大数据运维能力的一些思考

  • DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑

  • 美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜

相关文章:

  • 关于中间件服务的配置管理,分为5个阶段
  • 一个诡异的MySQL慢日志问题
  • 关于MySQL中insert ignore,insert on duplicate和replace into,你可能没想过区别
  • 你可能不了解的《唐诗三百首》
  • 趣头条基于ClickHouse玩转每天1000亿数据量
  • 疏通厨房水槽的感悟
  • 《生活中的魔法数学》读后感
  • 《唐诗三百首》中的童年记录
  • 关于远程办公的一些思考
  • 从Oracle新特性看数据库发展
  • 用Python对2019年二手房价格进行数据分析
  • 一则慢日志监控误报的问题分析
  • MySQL备份失败,一波三折的问题分析和处理
  • 重启大法带给我的思考,原来不是简单的重启
  • 有时候解决问题比写代码更重要
  • 网络传输文件的问题
  • @angular/forms 源码解析之双向绑定
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • linux学习笔记
  • spring cloud gateway 源码解析(4)跨域问题处理
  • vue-router的history模式发布配置
  • Vue学习第二天
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 对JS继承的一点思考
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 王永庆:技术创新改变教育未来
  • 用jquery写贪吃蛇
  • 正则与JS中的正则
  • 数据库巡检项
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​如何在iOS手机上查看应用日志
  • # centos7下FFmpeg环境部署记录
  • $.proxy和$.extend
  • (1)bark-ml
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)socket Aio demo
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .equals()到底是什么意思?
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Core中Emit的使用
  • .net 按比例显示图片的缩略图
  • .NET基础篇——反射的奥妙
  • .net开发引用程序集提示没有强名称的解决办法
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET业务框架的构建
  • /etc/skel 目录作用
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [<MySQL优化总结>]
  • [20150321]索引空块的问题.txt