GaussDB(DWS) FI manager用户、角色、租户问题前端排查思路

网友投稿 740 2022-05-30

一、功能简介

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的逻辑执行完成

通过这个例子,我们可以继续去④拿到的节点上,查找⑤执行的脚本的日志,进行下一步的排查。

GaussDB(DWS) FI manager用户、角色、租户问题前端排查思路

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等功能,情况也是多种多样,可以查阅产品文档和相关博文进行学习。

EI企业智能 Gauss AP 数据仓库服务 GaussDB(DWS)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用ABAP代码提交 CRM Survey调查问卷
下一篇:tkinter使用canvas实现渐变色
相关文章