帮你快速理解、总结文档立即下载

行级权限控制(Row Filter)

最近更新时间:2026-09-11 20:42:30
我的收藏

概述

行级权限控制(Row Filter)允许您在数据表详情页对单张表配置行过滤规则,按授权主体(用户、用户组)声明 WHERE 过滤表达式,限制不同主体在同一张表中可见的行范围。配置后,受控表的查询请求在所有 SQL、Notebook、仪表盘等鉴权场景下都会自动追加对应的过滤条件,仅返回满足条件的行。
典型场景:一张包含全国订单的事实表中,希望华南区运营人员只能看到 region = 'south' 的订单,华北区运营人员只能看到 region = 'north' 的订单,运营总监能看到全部行——可以通过为不同用户组分别添加行过滤表达式实现。

前提条件

在开始本操作前,请确保满足以下条件:
已开通 DataBuddy 服务并完成空间初始化。
当前账号在目标表上拥有 授权(Grant) 权限(即在「+ 授权」按钮上具备权限),权限语义详见 成员与权限管理
已确定行过滤的授权对象(用户、用户组),用户组在工作空间内已创建完毕。

使用限制

限制项
说明
适用对象
行级权限规则按表配置,作用于该表。
授权主体类型
支持 用户用户组 ;同一主体出现在用户层与用户组层时,权限范围取并集。
表达式格式
行过滤表达式为标准 SQL WHERE 子句片段,例如 year > 2010 AND country != 'US'
表达式长度
单条行过滤表达式最大长度为 2000 字符
规则数量
单张表可配置的行权限规则数量无硬上限。
校验项
表达式支持一键校验,包括字段是否存在、逻辑、语法等基础检查;校验失败需修正后才能保存。
Schema 变更行为
当行过滤表达式引用的字段在表 Schema 中被重命名或删除后,相关行权限规则自动失效 ;需重新编辑表达式才能恢复行权限管控。
用户组成员变更
用户组成员新增 / 移除后,已经在执行中的查询不会实时切换 可见行集合;变更对后续新发起的查询生效。
权限继承
行权限 Tab 的可见性继承表详情页的 权限 Tab 可见性;+ 授权 > 行权限 按钮的可点击性继承 + 授权 按钮本身的权限。
配套能力范围
列权限、ABAC 策略、动态视图等高级安全能力当前版本暂未对外开放 ,将在后续版本中逐步上线。

操作步骤

步骤 1:进入数据表详情页

1. 登录 DataBuddy 控制台
2. 在顶部切换到目标地域和 Workspace。
3. 在左侧导航栏选择 数据目录
4. 在 Catalog → Schema 中找到目标表,进入其详情页。

步骤 2:进入行权限管理面板

1. 点击“授权”按钮,下拉中会出现 数据表权限行权限 两项。
2. 点击 行权限 ,进入该表的行权限配置面板。

步骤 3:添加行权限规则

1. 在行权限管理面板点击 + 授权 > 行权限 ,进入行级权限配置界面。
2. 选择 授权对象 :在「用户」「用户组」之间切换,支持模糊搜索,可多选、全选。
3. 输入 行过滤表达式 :填写 WHERE 子句片段,例如 year > 2010 AND country != 'US'
4. 先选择计算资源,然后点击 校验 验证表达式是否合法(涵盖字段是否存在、逻辑与语法)。校验未通过时按提示修正后再保存。
5. 校验通过后点击确定 保存。
提示
对同一张表为多个授权主体添加规则时,配置面板会按用户、用户组明细各保存一条;后续编辑、移除均针对单条记录单独操作。

步骤 4:编辑或移除行权限规则

1. 在行权限列表中定位到目标记录。
2. 点击 编辑 修改行过滤表达式,修改后再次校验并保存。
3. 点击 移除 后,在弹窗中确认删除;确认后该条规则立即失效。

参数说明

参数
说明
是否必填
默认值
取值范围
授权对象
选择行规则作用的主体,可在「用户」「用户组」之间切换,支持模糊搜索、多选与全选。
-
当前工作空间内已存在的用户 / 用户组
行过滤表达式
标准 SQL WHERE 子句片段。引用的字段必须为该表的真实字段。最大长度 2000 字符。
-
例如 region = 'south'year > 2010 AND country != 'US'

验证结果

操作完成后,您可以通过以下方式确认:
1. 在表详情页 行权限 面板列表中,可以看到刚保存的规则;授权主体、主体类型与表达式均显示正确。
2. 使用对应主体的账号在 Studio 中执行 SELECT * FROM <表名>,返回的行集合仅包含表达式条件成立的行。
3. 切换到未配置行权限的主体(且具有表查询权限),仍可查询全部行;该机制保证仅显式配置过规则的主体被收敛访问范围。

常见问题

Q:同一个用户既属于一个用户组、又被单独授予行权限,最终能看到哪些行?

A:取所有规则的并集。例如用户组规则为 region = 'south'、用户规则为 vip = true,该用户最终可见的行是「region = 'south'vip = true」的所有记录。

Q:行过滤表达式支持哪些语法?

A:使用标准 SQL WHERE 子句片段。可使用比较运算符(= != > < >= <=)、逻辑运算符(AND OR NOT)、IN 列表、BETWEENLIKE 等常见语法。具体函数和算子的支持范围以底层引擎实际能力为准,建议在编辑时使用 校验 功能验证表达式是否合法。

Q:删除某条行权限规则会立刻生效吗?

A:移除后立即对后续查询生效。已经在执行中的查询不会被强制中断。

Q:行级权限对哪些查询入口生效?

A:完成行过滤器配置后,受控表会按行过滤表达式逻辑控制行可见性,作用于所有需要鉴权的 SQL 查询场景(包括 Studio SQL、Notebook、仪表盘、工作流中的 SQL 任务等)。

相关文档