前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >私有云MySQL多租户权限的初版设计

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

作者头像
jeanron100
发布2020-01-17 15:43:50
1.6K0
发布2020-01-17 15:43:50
举报

这是学习笔记的第 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自助优化,业务巡检和监控查询等。

QQ群号:763628645

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档