为用户访问实施行级安全
| 目标 | 配置用户与数据的映射关系,确保用户只能查看其有权查看的行 |
| 预计时间 | 初始设置需30至45分钟;随着用户变动,需进行后续维护 |
| 先决条件 | 管理员或高级用户角色;项目中配置的用户;了解您的数据分段需求 |
何时使用此程序
当用户应根据其身份查看不同的数据子集时,请使用行级安全。 常见的情况包括:业务部门经理仅查看本部门的成本、区域经理仅访问本区域的数据,或分布式成本中心的负责人审查自己的预算。
本指南重点介绍 RLS 的用户映射功能。 有关包括转换管道配置在内的完整技术实现,请参阅第 3.1.4: 节“数据安全 ”。
了解 RLS 架构
TBM Studio 中的行级安全主要由两个组成部分构成:
- 映射表: 定义哪些用户可以访问哪些数据项(例如,用户 bob@acme.com 可以查看业务单元 2)
- RLS 过滤器: 应用于转换表,以便在用户查看报表时强制执行映射规则
映射表存储在 “行级安全 ”项目中,该项目会在创建新的 TBM Studio 实例时自动安装,并适用于域中的所有项目。
步骤
步骤 1:规划您的 RLS 结构
在创建映射表之前,请确定:
- 您将按哪个维度进行筛选? (例如:业务部门、成本中心、地区)
- 哪些用户需要访问该维度的哪些值?
- 是否有用户需要访问所有数据? (您可能需要一个单独的“完全访问”映射表)
步骤 2:创建映射表
- 打开“设置”菜单,然后单击 “配置行级安全 ”。
- 创建一个新表格(或在Excel/ CSV 格式下预先准备好一个),其中必须包含两个必填列:
- ID: 用户 ID(与“Users”表对应的电子邮件地址)
- 项目: 用户可访问的值(例如,“BU 2”、“北美”)
- 将用户与项目的关联关系填入映射表中。 例如:
标识 业务部门 bob@acme.com BU 2 rachel@acme.com BU 1 rachel@acme.com BU 3 提示: 如果用户需要访问多个值,请为该用户添加多行(如上文 rachel@acme.com 所示)。 - 将映射表上传到行级安全项目中。
步骤 3:创建完全访问映射(可选)
对于需要查看所有数据的用户(例如高管、财务管理员),请创建一个单独的具有完全访问权限的表格,而不是列出所有可能的值:
| 标识 | 管理员 |
| sally@acme.com | 是 |
此方法可确保具有完全访问权限的用户无需更新映射即可自动查看新数据项。
第 4 步:将 RLS 过滤器应用于表
创建映射表后,将其应用到数据表中。 有关配置 RLS 管道步骤的详细说明,请参阅 “ 3.1.4: 数据安全”一节。
步骤 5:测试 RLS 配置
- 在 RLS 步骤中使用 “预览筛选器 ”来测试特定用户将看到的内容
- 使用 “模拟 ”功能以特定用户的身份查看报告
- 请确认具有完全访问权限的用户能够查看所有数据
- 确保受限用户只能查看其被授权的数据
不同特征下的RLS行为
了解 RLS 在 TBM Studio 各项功能中的表现:
- 转换表: RLS 会在数据出现在任何下游使用场景之前对行进行过滤
- 可编辑表格: RLS 限制了用户可以查看和编辑的行。 用户只能修改可见的行。
- 报道: 聚合结果仅反映用户可见的过滤后数据
- 发布: 当用户发布可编辑的表格时,隐藏的行会被保留,不会被删除
- 模型概览报告: 每个层级仅反映适用于该特定层级的 RLS;各层级的数值之和可能与更高层级显示的总和不一致
重要提示: 表不会自动继承 RLS 设置。 对于每个需要行级过滤的表,您都必须添加一个 RLS 步骤。
常见误区
- 用户 ID 不匹配: 映射表中的 ID 列必须与 Users 表中的用户 ID 完全一致。 即使是很小的差异(区分大小写、多余的空格)也会导致 RLS 出现错误。
- 管理员绕过: 请勿依赖 RLS 来保护数据免受管理员用户的访问。 他们可以进入“工作室”模式并修改 RLS 配置。
- 分摊成本: 如果将成本从受限区域分摊至可见区域,用户可能会看到源自其授权范围之外的成本。
- 钻取表中缺少 RLS: 请确保在所有出现在钻取报告中的表上都配置了 RLS。
相关任务
- 配置 RLS 管道步骤
- 通过 DataLink 加载 RLS 数据(参见 5.1 )
- 了解安全模型 (第 4.4 节)