租户管理#

租户是一系列资源与用户的集合,主要用来做资源隔离。资源即包含数据库中的数据、元数据以及计算资源,也包括Worksheet、数据同步任务等其他产品资源。

租户之间是有层级关系的,系统内有一个内置的“根租户”,根租户下可创建子租户,子租户下可以再次创建子租户,如此可支持多层租户的嵌套。每一个租户都有且仅有一个租户管理员。

tenant-structure

资源都从属于某一特定租户,不同租户的资源天然是隔离的。资源分为共享资源与独享资源,共享资源可根据一定的规则在不同租户间共享,独享资源不可共享给其他租户。 数据库的元数据、数据、计算资源,Worksheet,机器,集群等属于共享资源;其他资源都是独享资源。

父租户有权限的共享资源,父租户的管理员可以通过权限赋予的方式把权限赋予给子租户,但范围仅限于父租户本身所拥有权限的子集。

用户映射与同步#

OushuDB 是 Skylab 平台的重要组成部分,Skylab 平台与 OushuDB 各有自己的用户体系,为了让用户在登录 Skylab 平台之后,可直接使用 Wokrsheet 执行数据库查询,无需创建数据源或者重新登录数据库, Skylab 打通了与 OushuDB 的用户与认证。Skylab 内的用户会同步到 OushuDB 并且做了相应的映射。映射规则如下(举例):

类型

Skylab

OushuDB

租户

tenantName

tenantName_t_100000001002(100000001002为租户代码)

用户

userName

userName_u_100000001002

角色

roleName

roleName_r_100000001002

用户组

groupName

落地到DB侧为用户组导致的角色与用户的(间接)关系

用户同步的规则:OushuDB 集群所属租户以及所属租户的所有下有各级子租户,以及以上租户的所有租户用户、角色以及用户与角色的关系,都会被同步到 OushuDB。

在如下场景下,会触发用户的同步:

  1. 在部署、注册、通过 UI 启停 OushuDB 集群时,同步所有符合条件的已有用户;

  2. 在创建、删除租户、租户用户、角色时,同步租户、用户、角色以及其关系到相应 OushuDB;

  3. 在修改租户管理员、租户用户与角色的关系、用户组内的用户或者被赋予的角色时,同步用户、角色的关系到 OushuDB;

限制与约束#

对数据库内部的权限的租户隔离,仅限于使用 Skylab 可视化 UI 去做权限的赋予与查看。如果通过其他途径,比如 SQL 命令行去做数据库权限的管理, 则不受租户的限制,做不到租户的隔离。

只有通过 Skylab UI 创建的租户、用户、角色会同步到数据库,数据库内通过命令行创建的用户不会被同步到 Skylab。

租户管理#

登录平台之后,进入个人中心页面,点击左侧“用户管理”菜单即可进入用户管理页面。在该页面,您可以管理租户、租户用户、角色以及用户组。

tenant-management

页面中间展示的是租户的层级关系,鼠标悬浮到某租户上,点击“+”图标可以添加子租户,点击删除(垃圾桶)图标可删除子租户。根租户的租户管理员可以添加、删除任意层级子租户。 只有子租户的直属父租户管理员才可以管理子租户的权限。

tenant-add

输入子租户名称、租户管理员名称、租户管理员密码,选择“首次登录是否需要重置密码”,点击“提交并复制密码”即可创建子租户与其租户管理员。

点击某租户之后,右侧页面上方展示该租户的信息卡片,包括租户的名字、代码、租户负责人、创建时间等。点击租户信息卡片右上角的编辑图标,可编辑租户信息。

tenant-add

租户名称不可以修改,可以修改租户管理员,租户管理员只能从已有租户用户中选择。

租户权限管理#

引入层级租户之后,除了给租户用户、租户的角色赋权之外,您还可以给租户赋权。父租户管理员登录之后,在用户管理页面,鼠标悬浮到某子租户上,点击“权限管理”图标(钥匙的图标)即可打开子租户权限管理页面。 该页面与用户、角色的权限管理页面相同,在此您可管理机器、集群、数据库的数据、数据库的计算资源(VC)与其他产品的权限。