在《快速开始PieCloudDB》中,我们了解了如何在 PieCloudDB Database 创建账号,进行数据上传、查询和邀请用户。本文承接《快速开始PieCloudDB》,将详细介绍和演示 PieCloudDB 的权限管理功能,让您对其有更深入的了解。
PieCloudDB 以账户实体的形式是账户在数仓实例中具象体现,每一个 PieCloudDB 账户都拥有四类账户实体,如下图所示。
其中:
对 PieCloudDB 账户实体整体情况了一个大致的认识后,接下来我们深入细节,进一步了解 PieCloudDB 权限系统的核心:角色功能。
PieCloudDB 权限管理系统是以角色为管理单位的权限管理工具。
角色是用户权限概念的具象化,代表了权限的集合。权限以角色的方式下放给各个用户。一个角色可对应一个用户,也可对应一类用户。用户与角色并非一对一关系,一个用户可被授予多个角色,而一个角色可被授予给多个用户。每个用户都会被赋予至少一种角色,每一种角色都有其对应的权限。
PieCloudDB 角色权限分为数据库对象权限和系统权限两部分。数据库对象权限对应账户内各角色的数据权限,且只有数据库对象所有者可管理相应权限。而系统权限对应各角色的功能权限,其中包括计算资源的管理权限。
继承是权限以角色的形式传递给另一个角色的动作。继承的角色在层级上要高于被继承的角色,且继承角色的权限与被继承角色的权限保持一致,意味着即使收回继承角色所继承的权限,该权限状态会与被继承角色保持一致,并不会被收回。一个角色可以继承另一个角色的权限。继承的权限即使被改动,状态也会与被继承角色相对应的权限保持一致。继承关系使得各角色间呈现一个角色层次结构。
赋予是权限以角色的形式下放给用户的动作。拥有角色管理权的角色,可将角色及其权限赋予给用户。
PieCloudDB 中,每个账户都预设了四个角色:
预设角色系统权限详情及继承关系如下图所示:
这些预设角色不可被删除。在通常情况下,建议系统角色由不同用户承担,管理员类角色尽量使用 PieCloudDB 系统预设角色。
在这一部分,我们将从账户管理员起步,演示创立自定义角色的过程,具体步骤如下图所示。
假设账户管理员已将用户管理员及数据库管理员赋予了相应的用户,用户管理员可为新用户组建立自定义角色,并对该角色的系统权限进行设置。
在自定义角色设立后,数据库管理员创建该角色所对应的数据库对象,并将相应的数据库权限赋予该角色,通过数据库权限这种方式来约束相应数据的读写权。
系统权限和数据库权限设置完毕后,用户管理员再将该角色赋予用户组。角色权限管控下的用户组,可通过其对应的角色,在适当的权限条件下探索数据。
假设某公司需要对某几类线上产品的销售额进行存储和分析,销售额数据结构如图所示,这里的示例数据与《快速开始PieCloudDB》中示例的数据平行。
该公司的数据管理团队决定由 David 、 Betty 和 Charlie 三位负责管理这部分数据及其附属的权限,并支持业务部门的 Adam 进行销售数据分析工作。
首先, David 作为账户管理员,需要将用户管理员角色赋予 Betty 。被赋予用户管理员权限后, Betty 再将数据库管理员的角色赋予给 Charlie 。
各管理员角色就位后, Betty 为 Adam 创建其对应的角色。根据 Adam 的需求, Charlie 再为其角色创建对应的数据库对象,将这些数据库对象的权限分配给 Adam 的角色。角色权限设置完成后, Betty 最后将该角色赋予给 Adam 。
通过类似的步骤,我们可以根据每组用户如数据类型、功能需求等特性来创建对应的角色。
在本文的实例中,用户管理员 Betty 和数据库管理员 Charlie 可以通过同样的步骤为来自其他业务部门的 Ella 和Fiona 建立相应的角色,并按照她们的需求赋予系统、数据库对象权限。
Adam、Ella 和 Fiona 在「线上销售数据」数据库中的读取权限图示
在演示示例中,Adam、Ella 和 Fiona 都来自业务部门,所属团队的不同使得他们对数据权限及开发的需求各不相同。PieCloudDB 权限系统可以使得这些用户以角色的形式,在各管理员的监督下,根据各自角色的权限,安全读、写所需的数据,并进行对应的清理、分析与开发工作。
在这一部分,我们将以用户 Adam 为例,演示如何创建、授予角色,并将相应的数据库对象权限授予给特定角色。
在《快速开始PieCloudDB》中,除账户管理员 David 之外,我们还另外创建了三个用户: Charlie 、 Betty 和 Adam 。 David 登录平台后,点击菜单栏「用户」功能,可以看到该账户下目前共有4个用户。点击用户名称可查看各用户详细信息,包括授予给用户的角色。这里除 David 外,当前所有用户都是Public角色。
点击用户名称可查看各用户详细信息,包括授予给用户的角色。这里除 David 外,当前所有用户都是 Public 角色。
8.1 账户管理员指定用户管理员
第一步,账户管理员 David 需要将用户管理员角色授予 Betty 。点击菜单栏「角色」功能,PieCloudDB 会以关系图和列表两种形式显示账户下所有角色。拥有相关权限的用户可在该界面管理系统权限及角色继承关系。
「角色」菜单栏关系图模式:
「角色」菜单栏列表模式:
在 David 的账户中,目前只有四个系统预设的角色。点击「usermanager」用户管理员角色,David 可查询当前该角色的系统权限及数据库对象权限,也可点击「角色继承」在该界面查询角色的继承关系。点击「用户授予」,可以看到目前暂无被授予的用户。
点击上图中的蓝色按钮「授予给用户」,在「将被授予角色的用户」一栏选择用户 Betty,再点击「授予」,将用户管理员授予 Betty。
除此之外,在角色已创建的情况下,David 也可通过用户界面,将用户管理员快捷授予给 Betty。
最后点击「授予」,即可快捷授予角色。
8.2 用户管理员指定数据库管理员
在被授予用户管理员后,Betty 即可以该身份登录平台,管理用户、角色及对应系统权限。登录后我们可以看到,用户管理员左侧的功能菜单栏多以「用户」、「角色」功能为主。
下一步,Betty 需要将数据库管理员授予 Charlie ,并为 Adam 创建自定义角色「顾客数据分析」。用户管理员角色使得 Betty 有权创建、管理、删除角色。菜单栏点击「角色」,和 David 的步骤类似,Betty 点击「dbmanager」数据库管理员角色,将该角色授予 Charlie 。
8.3 用户管理员创建新角色
点击右上角添加角色,输入角色名称等信息,Betty 即可创建自定义角色。
注意,所有自定义角色在不指认任何继承关系的情况下,默认继承 public 角色。
由于 Adam 有更改、上传客户信息的需求,我们需要对应角色的系统权限中增加数据导入菜单的权限。点击新建角色「顾客数据分析」,再点击「系统权限」界面的「管理权限」,在「授予的权限」下拉菜单中选择「数据导入」等五项权限,为 Adam 对应的角色增加使用导入菜单所需的系统权限。
这其中,新添角色若想有权使用数据导入功能,则首先需要「数据导入菜单」的父级权限「数据集成菜单」,再将「数据导入菜单」权限赋予该角色。在角色拥有相关菜单权限的基础上,给予角色「数据导入」功能权限,这样新添角色才可以使用「数据导入」功能进行数据上传。
除此之外,「导入任务详情」和「导入历史数据」权限可以赋予该角色查看导入历史及导入历史详情的权限。在平台中添加步骤如下图所示。
添加权限完毕后,点击右下角的「更新权限」完成权限更新。
在系统权限设置完毕后,Betty 即可将该角色赋予 Adam。
8.4 数据库管理员为新角色创建、管理数据库对象权限
作为数据库管理员 Charlie 需要为 Adam 创建所需的数据库对象,并将这些数据库对象的权限下放给 Adam 。除此之外,Charlie 还需为 Adam 创建计算所需的虚拟数仓。
Charlie 登录平台后,先进入「虚拟数仓」菜单,为 Adam 创建虚拟数仓。具体步骤详见《快速开始PieCloudDB》。
成功创建虚拟数仓后来到数据洞察界面,创建所需的数据库对象,步骤与《快速开始PieCloudDB》 中一致。
刷新数据库部分,可以看到新创建的数据库对象已更新。创建结束后,再到「数据集成」的「导入数据」界面,上传数据文件至对应的表中,这里的步骤与《快速开始PieCloudDB》 中一致。
在上述过程中,数据库管理员 Charlie 为虚拟销售数据创建了多个数据库对象。Charlie 可以使用「数据库」功能查询这些数据库对象的元数据,管理相关权限。在 「数据库」界面点击需要查询的数据库、schema、表或者视图,即可显示数据库对象的字段信息以及权限列表。数据库对象的所有者可使用界面右上角的「授权」按钮,将数据库对象权限下放给其他角色。
注意,在 Charlie 不作任何授权动作的情况下,同一个账户下的其他用户都无法访问这些数据库对象。这里以 Adam 为例,当 Adam 登录并进入「数据洞察」界面,尝试查询顾客信息时,界面显示报错并提示 Adam 并无相关权限。
数据库管理员 Charlie 可以使用「数据库」的「授权功能」,将数据库对象权限授权给特定角色,该角色下的用户才有权读或写这些数据库对象。对于 Adam 而言,他所需的数据如下图所示。
PieCloudDB 一共有三个层级的权限:数据库层、模式(schema)层及数据库对象层。
在权限设计中,Adam 拥有销售数据的只读权及用户数据的读写权。为了让 Adam 获得相对应的读写权,Charlie需:
这一部分的详细操作,请参考 PieCloudDB 权限系统视频。这里以「服装产品数据表」为例,授权步骤如下图所示:
8.5 赋权完成
完成授权步骤后,David 账户下的四个用户通过角色功能,调整了权限结构。对比来看,David 拥有账户下所有系统权限,Betty 主要拥有角色、用户及管理系统权限的权利,Charlie 在平台可使用的功能主要围绕数据库和虚拟数仓,Adam 在普通使用者的系统权限之上增加了使用「数据导入」功能的权限。
权限设置完毕后,Adam 登录即可发现,菜单栏新增了「数据集成」功能。如 Adam 获得了一份包含新用户数据的文件,Adam 可以使用该功能,自行将新用户导入用户数据表中。
权限设置完毕后,Charlie 和 Adam 都可通过各自的角色来与销售数据进行交互。这里以 Adam 为例, 按照相应权限,Adam 可对顾客数据进行读、写等操作。
如下图所示,Adam 可根据自己的需求从顾客数据中读取数据,也可使用 insert 语句将新数据加入该表。
这里我们用顾客 ID 验证一下新增的数据是否在顾客数据表中存在。
与此同时,并未被赋予数据库对象权限的 David 和 Betty 则无法获取这些数据。这里以 David 为例,可以看到 David 无权读取顾客数据。
以上为 PieCloudDB 权限系统介绍的所有内容,感谢您的阅读。欢迎大家登录 PieCloudDB「云上云」版,开启属于自己的的数据探索之旅。
相关博文