GaussDB(DWS) FI manager用户、角色、租户问题前端排查思路
一、功能简介
Manager管理系统,提供了通过web页面,对GaussDB数据进行用户、角色、租户的创建、修改、绑定等操作的功能。
用户:即通常理解的数据库用户,用户可以连接任何数据库,用户可以拥有数据库和数据库对象(例如表),并且可以向用户授予对这些对象的权限以控制谁可以访问哪个对象。
角色:角色是一组权限的集合,像是一种身份。把一个用户赋予一个角色后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。
租户:是对系统一系列资源实体(CPU、内存、IO、存储空间)逻辑划分后的抽象,一般用作任务隔离、资源管控。当创建一个租户时,也会同时创建一个对应该租户的角色。但是,角色不依赖于租户,可以单独创建一个独立的角色。
ps:更多租户问题定位、租户功能学习,可以点击以下链接,以及该博主其他博文
https://bbs.huaweicloud.com/blogs/195588
通过上面的页面,可以看到:
①页面有对用户、租户进行创建、修改等操作的功能
②用户和角色通过类型user和role进行区分
③角色有独立的角色,也有对应租户创建的角色
二、组件结构
上图是对manger运行组件中,和租户、用户、角色相关功能关联的组件截图;
从图中,我们可以看到,相关组件主要包括:web服务、acs服务、aos服务以及MPPDB服务。
web服务:提供通过页面接收web请求的功能,
acs服务:提供运维系统用户(前端用户)管理(非MPPDB数据库用户,这里不做讨论)
aos服务:提供租户相关功能
MPPDB服务:数据库内核,前端的功能都要落实到内核,功能才算执行完成
每个服务左下角的接口图标,代表服务可以通过一个插件接口,和MPPDB服务沟通,调用MPPDB的脚本进行以上功能的完成。
三、实现逻辑
由于租户、用户以及角色一些功能互相关联,因此本文放在一起讨论,但具体实现过程中,代码层面并非耦合在一起的。实现逻辑,因此分为两种情况介绍:
1.整个操作,租户都没有参与(例如创建用户,创建独立角色)
逻辑的入口,无一例外都是通过web页面,发送http请求进来;
由于并没有租户逻辑参与,因为不需要调用aos服务,通过插件接口,直接可以联系到MPPDB服务
(/var/log/Bigdata/tomcat/web.log)
以上图一次添加用户的日志为例:
①记录接到addUser的web请求
②开始执行addUser的逻辑
③查找MPPDB服务的cn的ip地址
④拿到了cn的ip地址
⑤按照顺序到④拿到的ip列表中,找到第一个可用的ip,执行该脚本gaussdb-authorityManager.sh
⑥整个addUser的逻辑执行完成
通过这个例子,我们可以继续去④拿到的节点上,查找⑤执行的脚本的日志,进行下一步的排查。
2.整个操作,有租户逻辑参与(例如创建租户,给用户绑定租户创建的角色)
逻辑的入口,还是通过web页面,发送http请求进来;
我们还是通过一个日志的例子,进行分析
(/var/log/Bigdata/tomcat/web.log)简称web.log
(/var/log/Bigdata/controller/aos/aos.log)简称aos.log
(/var/log/Bigdata/controller/aos/plugin.log)简称plugin.log
页面结果
①web.log中可以看到,web将请求转发给端口号为20007的服务,正是aos服务
②aos.log记录了接收到请求,以及最后执行完请求
③plugin.log记录真正执行的sql,图中sql is xxx后面的即是真正执行的sql
④plugin.log记录了以上sql的执行结果,为“dbms_redact;dbms_sql;dzx;joe;liuxia;public;tpcds;utl_file”
⑤对比上面的查询结果,正是页面上展示的资源名称
三、常用日志及写在后面的话
1.常用日志
上文提到的链接地址,有更加详细的日志说明,请跳转:
https://bbs.huaweicloud.com/blogs/195588
2.写在后面的话
本博文,仅分享了从前端页面,到MPPDB之前,根据日志分析的组件调用关系及逻辑。调用到MPPDB后台,sql的具体报错,涉及内核user,role,resource pool等功能,情况也是多种多样,可以查阅产品文档和相关博文进行学习。
- 点赞
- 收藏
- 关注作者
评论(0)