跳到主要内容
版本:8.1.0

数据行列权限

概述

数据行列权限是观远 BI 提供的针对行列级别的权限控制功能。通过给数据集配置行列权限,可以为不同的关联用户/用户组设置不可见的字段或字段值,满足个性化的数据安全保障需求。

列权限:控制用户不能查看哪些字段(纵向控制,隐藏整列)。例如:隐藏成本价字段,让普通员工看不到。

行权限:控制用户可以查看哪些数据记录(横向控制,过滤行)。例如:让华东销售人员只能查看华东区域的数据。

业务价值

  • 精细化权限管控:实现字段级和记录级的数据访问控制
  • 数据安全保障:防止敏感数据泄露,确保数据合规使用
  • 灵活配置:支持多种条件类型和自定义函数,适应复杂业务场景
  • 降低管理成本:通过模板快速应用权限策略,提升管理效率

适用场景

  • 敏感字段隐藏:如隐藏成本价、利润等敏感字段不让普通员工查看
  • 数据范围隔离:如销售人员只能查看自己负责区域的数据
  • 层级数据管控:如下级部门只能查看本部门及下属部门的数据
  • 个性化数据视图:不同角色查看不同的数据维度

前提条件

  • 具备数据集行列权限的配置权限(数据集所有者 / 管理员)
  • 了解数据集的基本概念(参见 术语解释

数据行列权限入口

配置入口速查表

操作路径说明
配置行列权限数据准备 > 数据集 > 选择数据集 > 数据安全 > 行列权限设置列权限和行权限规则
使用权限模板管理中心 > 资源管理 > 数据安全模板 > 创建/编辑模板创建可复用的权限规则
应用权限模板数据准备 > 数据集 > 数据安全 > 行列权限 > 选择模板将模板应用到数据集

详细操作步骤

  1. 在「数据准备 > 数据集」页面,找到需要处理的目标数据集,点击目标数据集的名称,进入数据集详情页。
  2. 在数据集详情页,点击「数据安全 > 行列权限」页签,进入行列权限配置页面。

管理员和数据集所有者的行列权限

针对管理员和数据集所有者,系统提供了专门的开关来控制其是否受行列权限影响。

开关位置:在行列权限页面的底部区域。

开关状态说明
关闭(默认)管理员和数据集所有者不受行列权限限制,可查看所有数据
开启管理员和数据集所有者行列权限限制,只能查看权限范围内的数据
说明
  • 只有当管理员和数据集所有者被包含在行列权限的「适用对象」中时,此开关设置才会生效
  • 开关默认关闭,方便管理员进行数据管理和排查问题 。

列权限设置

列权限用于控制用户不能查看哪些字段信息,如限制普通人员查看成本价字段。

新增列权限

  1. 在「行列权限」页面,找到「设置列权限」区域,点击「新增」按钮。

  2. 在「列权限编辑器」页面,配置列权限后点击「确定」。

    • 列权限的对象:选择关联用户或用户组。
    • 列权限内容:不允许选择的对象查看哪些内容。
    • 列权限的备注信息:方便后期快速了解列权限。
  3. 在「行列权限」页面,打开列权限启用开关,列权限即可生效。

列权限效果示例

以销售员 A 的账号为例:

  • 列权限开启前:可查看数据集中的所有字段(如产品名称、销售数量、成本价、销售价)。
  • 列权限开启后:无法查看被限制的字段(如成本价),其他字段正常显示。

多用户组权限说明

当用户属于多个用户组,且不同用户组的列权限不一致时,该用户不能查看的数据是各用户组限制字段的交集

示例

  • 数据集有 5 个字段:产品名称、销售数量、成本价、客户电话、销售区域
  • 用户组 A 限制查看:成本价、客户电话
  • 用户组 B 限制查看:客户电话、销售区域

结果:该用户不能查看客户电话(交集),其他字段可见

行权限设置

行权限用于控制用户可以查看每个字段下的哪些记录,如限制华东销售人员只能查看华东区域的数据。

新增行权限

  1. 在「行列权限」页面,找到「设置行权限」区域,点击「新增」按钮。

  2. 在「行权限编辑器」页面,配置以下信息:

    • 行权限的对象:选择关联用户或用户组。
    • 行权限内容:允许上一步选择的对象查看哪些行数据。
    • 行权限的备注信息:方便后期快速了解或查找行权限。

行权限内容编辑方式

行权限内容支持两种编辑方式:条件模式自由模式

条件模式(推荐)

通过可视化界面配置筛选条件,无需编写代码,适合大多数场景。

支持的条件类型

条件类型适用场景说明
选择文本字段直接勾选或批量粘贴条件值,如省份、类别、名称等
范围数值/日期字段设置大于、小于、为空等条件,日期支持今天、昨天、最近 7 天等,如如零售价、销售量、日期等
条件文本字段设置等于、包含、以...开始等条件,如省份、类别、名称等
in(用户属性)用户相关字段字段值包含某个用户属性,如姓名、工号、部门等
in(全局参数)动态参数场景字段值包含某个全局参数值
以(用户属性)为开始层级字段字段值以某个用户属性值为开头,如部门层级
以(全局参数)为开始层级字段字段值以某个全局参数值为开头,如部门层级

配置完成后,点击「查询语句」按钮可查看生成的 SQL。

自由模式

通过 SQL 语句自定义筛选条件,适合复杂场景。

示例 1:只允许华东销售组查看华东数据。

[大区]="华东"

示例 2:每个销售人员只能查看自己的数据。

说明
  • 直连数据集:使用对应数据库类型的 SQL 语法(如 MySQL 使用 MySQL 语法)
  • Guan-Index 抽取数据集:使用 SparkSQL 语法
  • 如果不确定数据集类型,可在数据集详情页查看「连接方式」信息

其他用户数据可见性设置

对关联对象设置指定可见数据后,可配置其他用户的数据可见性:

可选配置项

选项说明
均不可看未被当前行权限规则覆盖的用户无法查看任何数据
均可看未被当前行权限规则覆盖的用户可以查看所有数据
条件模式未被当前行权限规则覆盖的用户只能查看满足指定条件的数据
自由模式未被当前行权限规则覆盖的用户只能查看满足 SQL 条件的数据
说明
  • 此设置用于控制未被当前行权限规则覆盖的用户能看到什么数据
  • 建议根据业务需求谨慎设置,避免数据泄露

启用行权限

创建行权限后,打开「启用」开关使行权限生效。

行权限效果示例

行权限开启前:销售人员 A 可查看所有大区的数据。

示例 1:行权限设置为「华东组销售只能看到华东区的数据」。

行权限开启后,销售人员 A 只能查看华东区的数据。

示例 2:行权限设置为「销售员只能看到自己的数据」。

行权限开启后,销售人员 A 只能看到自己的数据。

多用户组权限说明

当用户属于多个用户组,且不同用户组的行权限不一致时,该用户可以查看的数据是各用户组允许查看数据的并集

示例

对于「城市」字段

  • 用户组 A 允许查看:上海、杭州
  • 用户组 B 允许查看:上海、北京

结果:该用户可以查看上海、杭州、北京 3 个城市的数据

自定义函数设置(高级)

观远数据支持通过自定义函数进行统一权限管理,适合需要将权限与第三方系统集成的场景。

适用场景

  • 企业已有独立的权限管理系统,需要与观远 BI 集成
  • 权限审批流程需要在第三方系统中完成
  • 需要根据复杂的业务规则动态计算用户权限
说明
  • 行列权限和用户的关联关系及相关审批审核工作由第三方系统实现
  • 此功能需要一定的技术开发能力,建议由技术人员配置
  • 普通用户可跳过此章节

配置步骤

  1. 联系系统管理员获取 system-backend 系统运维页面的访问权限,进入「自定义域函数」。
  2. 点击「新增」或「编辑」自定义函数,配置以下信息:
    • 域:选择函数所属域
    • 函数名称:输入函数名称
    • 调用接口:输入调用的接口名称
    • 请求方式:选择接口请求方式(GET/POST 等)
    • 超时时长:配置接口超时时间(默认 2s)
    • 参数:列出函数的参数、用法、说明和示例
    • 安全验证码:可选,用于接口身份验证
  3. 创建好的函数可在 行权限内容编辑方式-自由模式 中使用。

权限计算规则总结

权限类型多用户组计算规则说明
列权限交集用户不能查看的数据是各用户组限制字段的共同部分
行权限并集用户可以查看的数据是各用户组允许查看数据的总和

可视化理解

列权限 - 交集(越来越严格)

用户组A限制: [成本价, 客户电话]
用户组B限制: [客户电话, 销售区域]
交集结果: [客户电话] ← 只有共同限制的字段才被限制

行权限 - 并集(越来越宽松)

用户组A允许: [上海, 杭州]
用户组B允许: [上海, 北京]
并集结果: [上海, 杭州, 北京] ← 所有允许的字段都可见

记忆技巧

权限类型本质多组叠加结果
列权限限制(不能看什么)多个限制叠加交集(最严格)
行权限允许(能看什么)多个允许叠加并集(最宽松)

一句话记忆

  • 列权限是「限制」,多个限制叠加取交集(越来越严)
  • 行权限是「允许」,多个允许叠加取并集(越来越宽)

注意事项

  • 权限优先级:列权限和行权限相互独立,同时生效(是「且」的关系,需同时满足)
  • 管理员权限:可通过开关控制管理员和数据集所有者是否受行列权限限制,开关默认关闭
  • 数据安全模板:可通过 数据权限模板 快速应用权限策略
  • 权限生效时间:权限设置后通常立即生效,如遇缓存可尝试刷新页面
  • 权限继承:基于当前数据集派生的子数据集或关联数据集,不会自动继承行列权限,需单独配置

常见问题

权限问题排查检查清单

当用户反馈「看不到数据」或「权限不生效」时,请按以下顺序排查:

排查顺序检查项检查位置预期结果
1功能权限管理中心 > 用户管理 > 角色用户角色有数据集查看权限
2资源权限数据集 > 权限管理用户对数据集有使用者/所有者权限
3行权限启用状态数据集 > 数据安全 > 行列权限行权限开关已开启
4行权限适用对象行权限规则详情用户在「适用对象」列表中
5行权限条件行权限规则详情条件设置正确,不过于严格
6列权限设置列权限规则详情未隐藏用户必需的字段
7管理员开关行列权限页面底部如需要,开启「管理员受行列权限影响」

排查技巧

  • 先确认用户能打开数据集(说明功能权限和资源权限正常)
  • 再确认用户能看到数据内容(说明数据权限正常)
  • 如果打开后数据为空,通常是行权限问题
  • 如果缺少某些字段,通常是列权限问题

设置的行列权限对数据集所有者没生效

原因:「管理员和数据集所有者受行列权限影响」开关未开启。

解决方案

  1. 进入行列权限配置页面
  2. 找到页面顶部区域的「管理员和数据集所有者受行列权限影响」开关
  3. 将开关设置为「开启」状态

详见 常见问题

用户属于多个用户组时权限如何计算

解决方案

  • 列权限:取各用户组限制的交集(最严格)
  • 行权限:取各用户组允许的并集(最宽松)

详见 权限计算规则总结

自由模式 SQL 语句报错

原因:使用了错误的数据集语法。

解决方案

  1. 确认数据集类型:
    • 在数据集详情页查看「连接方式」
    • 显示「直连」则为直连数据集
    • 显示「Guan-Index」则为抽取数据集
  2. 选择正确的 SQL 语法:
    • 直连数据集:使用对应数据库语法(如 MySQL、Oracle 等)
    • Guan-Index 抽取数据集:使用 SparkSQL 语法

权限设置后普通用户看不到数据

排查步骤

  1. 检查权限规则是否已「启用」
  2. 检查用户是否在权限规则的「适用对象」中
  3. 检查行权限条件是否设置正确(如条件过于严格可能导致无数据)
  4. 检查列权限是否隐藏了对用户必要的字段

如何快速为多个数据集设置相同的权限

解决方案:使用 数据权限模板

  1. 创建数据安全模板,定义通用的权限规则
  2. 在多个数据集上应用该模板
  3. 修改模板时,所有应用的数据集权限同步更新

术语解释

在使用行列权限前,建议了解以下术语:

术语解释
数据集观远 BI 中存储和管理数据的基本单位,可以是数据库表、Excel 文件等数据源
直连数据集直接连接外部数据库的数据集,实时查询数据,使用对应数据库的 SQL 语法
Guan-Index 抽取数据集将数据抽取到观远 BI 内部存储的数据集,使用 SparkSQL 语法
用户组一组用户的集合,可以批量管理用户权限
用户属性系统中预定义的用户信息字段,如姓名、部门、工号等
全局参数系统中可动态配置的参数值,可用于动态控制权限
交集多个集合的共同部分。例如:A 组限制字段 1、2,B 组限制字段 2、3,交集是字段 2
并集多个集合的所有部分。例如:A 组允许上海、杭州,B 组允许上海、北京,并集是上海、杭州、北京