前 言
数据库运维管理平台(AntDB-CC,简称ACC)是用于管理和监控数据库系统的软件工具或平台,它提供了一系列功能和工具,用于帮助数据库管理员(DBA)和运维人员进行数据库的配置、维护、性能优化、备份恢复、安全管理等操作。为保障数据安全和系统稳定,不同的用户所能操作的功能和数据范围应当被隔离,由此ACC设置了包含“用户管理”、“租户管理”、“资源池管理”等功能,来精确地划分控制不同的权限,本文将主要围绕以上几个功能展开。
1. 主题说明
建立一套全面清洗的权限控制体系,有助于长期有效的管理和使用数据库运维管理平台。
2. 用户需求与难点
针对小型的数据库,一位数据库管理员或运维人员就能够独立处理日常事务,但针对一些较为大型的的数据库时,往往是一个运维团队合作完成各项事务。在数量庞大的列表中筛选自己负责的内容本身就影响工作效率,其次还可能会发生失误操作,所以不利于长期的稳定管理。
3. 设计与实现
我们以“用户+角色+租户”为基本单位,可以将所有的使用者,划分到“平台管理员”、“数据库管理员”、“数据库使用者”这三大类用户中去。
(一)租户管理
超级管理员绑定的是默认租户,使用超级管理员登录,可以新增租户信息,新增的租户属于默认租户的下一级租户。在用户管理中创建新用户时,可以选择绑定的租户。拥有用户列表菜单的用户在查看用户信息时,只能查看到和自己租户相同的用户。
图 1:新建用户
(二)用户管理
用户管理功能包含了新建用户、绑定租户、绑定角色、设置密码、赋予集群权限等一系列功能在内。在新建用户时,需要为其绑定一个用户角色,从而让用户获得部分或全部的功能菜单,当新用户登录后,仅能查看使用角色下可使用的菜单功能。另外,如果存在已经纳管或创建的集群,也可以手动分配给用户访问。
(三)角色管理
ACC采用的是RBAC模型,角色的划分确定了角色需要承担的工作范围。初始状态下,ACC内置了3种角色类型,分别是超级管理员、集群管理员、普通用户。
超级管理员拥有全部的菜单权限,包含了对集群操作的相关菜单,对主机资源配置的功能菜单,还有对用户权限的一系列菜单。集群管理员则是仅仅保留了数据库、主机等与业务相关的功能,把对用户、角色等平台操作相关的功能去除。普通用户就只保留了相关数据的查询功能,把对数据有影响的“提交”、“删除”、“启用/禁用”等权限做了限制。
除了以上三种初始角色,还可以自行新建角色,自定义分配需要的菜单和按钮,更加细化的控制每一个角色的权限范围。
(四)资源池管理
在ACC平台中,可以选择新建数据库集群或者接入已有的数据库。不论选择前者还是后者,数据库使用到的主机信息都需要接入到ACC中进行监控。在资源池管理功能中,可以自行添加主机信息用于创建新的数据库。
首先需要创建可用区,在可用区下面创建资源池,在资源池中才可以添加主机信息;然后以资源池为维度进行租户分配管理,一个资源池可以分配给多个租户;最后可以设置每个租户可用的资源数,但是需注意总的分配额不能大于资源池下所有主机资源的总和。
图2:资源池管理
4. 结论
使用“用户管理+角色管理+租户管理+资源池管理”的功能组合,可以灵活的控制每一个用户的操作范围,不论是在管理角色上去限制普通用户的查询范围,亦或是集群管理员区创建数据库集群使用主机资源时,都可以隔离每个租户所用到的资源,并且都可以被清晰地管理和监控。
5. 关于亚信安慧AntDB数据库
AntDB数据库始于2008年,在运营商的核心系统上,服务国内24个省市自治区的数亿用户,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行超十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。