项目和表级别权限控制

项目级别权限控制

用户是否可以访问一个项目并使用项目中的功能取决于项目级别的权限控制,Kylin 中共有 4 种角色。分别是 ADMINMANAGEMENTOPERATIONQUERY。每个角色对应不同的功能。

  • QUERY:适用于只需在项目中有查询表/cube 权限的分析师。
  • OPERATION:该角色适用于需维护 Cube 的公司/组织中的运营团队。OPERATION 包含 QUERY 的所有权限。
  • MANAGEMENT:该角色适用于充分了解数据/模型商业含义的模型师,建模师会负责模型和 Cube 的设计。MANAGEMENT 包含 OPERATION 和 QUERY 的所有权限。
  • ADMIN:该角色全权管理项目。ADMIN 包含 MANAGEMENT,OPERATION 和 QUERY 的所有权限。

访问权限是项目隔离的。

如何确定访问权限

为用户设置项目级别的访问权限后,不同的角色对应于不同的对数据源,模型和 Cube 的访问权限。具体的功能,以及每个角色的访问权限,如下表所示。

 System AdminProject AdminManagementOperationQuery
Create/delete projectYesNoNoNoNo
Edit projectYesYesNoNoNo
Add/edit/delete project access permissionYesYesNoNoNo
Check model pageYesYesYesYesYes
Check data source pageYesYesYesNoNo
Load, unload table, reload tableYesYesNoNoNo
View model in read only modeYesYesYesYesYes
Add, edit, clone, drop modelYesYesYesNoNo
Check cube detail definitionYesYesYesYesYes
Add, disable/enable, clone cube, edit, drop cube, purge cubeYesYesYesNoNo
Build, refresh, merge cubeYesYesYesYesNo
Edit, view cube jsonYesYesYesNoNo
Check insight pageYesYesYesYesYes
View table in insight pageYesYesYesYesYes
Check monitor pageYesYesYesYesNo
Check system pageYesNoNoNoNo
Reload metadata, disable cache, set config, diagnosisYesNoNoNoNo

另外,当查询下压开启时,该项目的查询权限允许用户查询项目中的所有表即使没有 cube 为他服务。每个用户都会被授予查询权限。

管理项目级别的访问权限

  1. 在 Model 页面,点击左上角的小齿轮形状图标。您将被重定向到项目页面。

    项目和表级别权限控制 - 图1

  2. 在项目页面,展开一个项目并选择 Access。

  3. 点击 Grant 为用户赋予权限。

    项目和表级别权限控制 - 图2

  4. 填写用户或角色的名称,选中权限然后点击 Grant 赋予权限。

  5. 您也可以在该页面移除或更新权限。

    项目和表级别权限控制 - 图3

    请注意,为了向默认用户(MODELER 和 ANALYST)授予权限,这些用户至少需要登录一次。

表级别权限控制

用户是否可以访问表取决于表级别的权限控制,该功能默认开启。可通过将 kylin.query.security.table-acl-enabled 的值设为 false 的方式关闭该功能。
不同项目之间权限是互不影响的。
一旦将表权限赋予用户,则该用户可在页面上看到该表。

管理表级别权限

  1. 点击 Model 页面的 Data Source
  2. 展开某个数据库,选择一张表并点击 Access
  3. 点击 Grant 授权给用户

    项目和表级别权限控制 - 图4

  4. 选择 type(有 user 和 role 两种),在下拉框中选择 User / Role name 并点击 Submit 进行授权

  5. 您也可以在该页面删除该权限。

    项目和表级别权限控制 - 图5