逻辑集群中的用户权限

网友投稿 676 2022-05-30

功能描述

逻辑集群是基于NodeGroup机制来划分物理节点的一种集群模式。 GaussDB A通过逻辑集群管理,实现了在一个大的MPPDB物理集群中,将集群划分成多个小的逻辑集群,以达到逻辑集群间的计算和存储资源的隔离,并且用户数据互相隔离,同时也能保证在授权情况下的业务用户可以跨集群进行数据表访问。

实现原理

在每个逻辑集群内,客户可以独立管理业务资源,通过用户权限设置,实现逻辑集群内的资源隔离和逻辑集群间的数据互访。

对于每个逻辑集群系统,都相当于自主管理的独立集群,由多个物理节点组成,每个物理节点上有多个逻辑DN。这些逻辑集群共同使用相同的CN、GTM和CM等组件。

逻辑集群与多租户关系如下图所示:

多租户场景下,一个用户仅能绑定一个租户,而一个租户可以被多个用户绑定。既实现同一租户下,多用户协同处理同一业务(如图用户2和用户3),又实现不同用户访问相互隔离的逻辑集群资源(如图用户1和用户2)。

另一场景下,通过角色管理,在授权的情况下还可以实现跨逻辑群的数据互访(如图,逻辑集群2对用户1授权后,用户1可以访问逻辑集群2中的数据),实现资源的独立和按需共享,满足业务性能的最大化。

本例针对新建物理集群划分为逻辑集群,说明如何在逻辑集群中进行用户权限的控制。

本例新安装了6个DN节点的物理集群,如下图:

划分为2个逻辑集群,如下:

集群中用户、角色分布,如下:

user_lc_a与user_lc_a1绑定在逻辑集群LC_A上,user_lc_b绑定在逻辑集群LC_B上。2个逻辑集群中的数据库、数据表资源如下:

逻辑集群LC_A:

用户user_lc_a1:

用户user_lc_a:

逻辑集群中的用户权限

逻辑集群LC_B:

用户user_lc_b:

逻辑集群LC_A中,有2个用户,分别为:user_lc_a,user_lc_a1。其中Schema下包含了一张t_lc_a的表格。

逻辑集群LC_B中,有1个用户,user_lc_b。

按照逻辑集群功能,user_lc_b不能访问LC_A中的数据,user_lc_a与user_lc_a1无法访问逻辑集群LC_B的数据,并且user_lc_a1也无法访问user_lc_a的数据。

如上图所示,user_lc_b访问集群LC_A中的数据时,提示“ERROR:permission denied for relation t_lc_a”

如上图所示,user_lc_a1访问逻辑集群LC_A内user_lc_a的数据时,提示“ERROR:permission denied for relation t_lc_a”

逻辑集群内访问授权

对于每个逻辑集群系统,都相当于自主管理的独立集群,数据隔离与正常的独立集群一致。

本例中在逻辑集群LC_A中,表t_lc_a处于user_lc_a的schema,user_lc_a1无法访问表t_lc_a,如下:

如果用户user_lc_a1访问表t_lc_a,那么需要对user_lc_a1进行赋权:

逻辑集群内DML

本例中将Schema下的表t_lc_a的所有权限都赋给了user_lc_a1,用户user_lc_a1具备对表t_lc_a的所有权限,如下图所示,select、insert、update、delete对表的操作都可以正常进行。

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

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

上一篇:【云端大事件】深圳市智慧湾科技有限公司入驻华为云市场,助力业务上云
下一篇:jsp之session(一)
相关文章