ByteHouse企业版为您提供界面化的行权限管控能力,您可以在控制台启用行权限功能后,创建行权限策略并进行授权操作。本文为您介绍ByteHouse行权限的操作要点。
背景信息
ByteHouse支持对数据对象(Data Object,例如数据库、数据表、列、索引、视图、投影等)进行权限(Previlige)和行策略(Row Policy)两个维度同时进行权限管控。

- 权限(Previlige):表达是否允许用户对于数据对象的增(Insert)、删(Drop)、改(Alter)、查(Select)等操作的抽象策略。
- 行策略(Row Policy):一种用于控制数据访问的安全策略。允许对表中的数据行施加条件,以便控制不同用户可以访问哪些数据行。这种行级别的安全策略可以用来保护敏感数据,确保只有符合特定条件的用户才能访问某些数据行。
创建行权限策略
进入行权限页面
登录并进入ByteHouse企业版控制台后,单击顶部权限管理页签,在左侧导航栏单击行权限即可进去行权限列表页面,您可以在此页面创建行权限策略并进行授权管理。

开启行权限
- 进入行权限列表后,您可以在左上方集群下拉框中选择需要配置的集群。
如果集群未开启行权限功能,您需要根据界面提示先给集群开启行权限,后续才可选择对应集群创建权限策略。

注意
当前仅2.4以上集群支持开启行权限功能,低版本集群需升级后再打开功能。
- 您可以在弹出的侧边栏中开启行权限开关,打开开关后需重启集群才能生效。

创建行权限策略
单击页面左上角的创建行权限策略按钮,在弹出的页面中配置行权限策略参数。
配置基本信息。

- 选择待进行行权限管控的集群。集群需已开启行权限功能。
- 自定义策略名称和描述,用于标识行权限策略。
配置行权限策略。

参数 | 配置说明 |
---|
数据库 & 数据表 | 在下拉列表中选择需要进行权限管控的数据库、数据表。 |
行限制 | 在行限制输入框中输入行权限管控策略,行权限管控策略通过所选数据表的列字段表达式实现,例如: city = 'shanghai' :此行权限策略表示仅能查看city列取值为shanghai的数据。city IN ('shanghai', 'beijing') :此行权限策略表示仅能查看city列取值为shanghai或beijing的数据。description LIKE '%sale%' :此行权限策略表示仅能查看description列取值包含sale的数据。
您可单击上方查看样例查看更多配置样例。 注意 - 此处配置的列字段需在选择的数据表中真实存在,否则被授予此行权限策略的用户将查询不到数据,因此请配置正确,不要有大小写不一致、拼写错误等问题。
- 此处仅支持配置一条列字段表达式,不支持通过逗号、换行等方式配置多条列字段表达式。
|
RESTRICTIVE | 选择当有多个行权限策略时,策略间的执行逻辑。默认采用 PERMISSIVE 策略,您可以勾选开启RESTRICTIVE 策略,开启后将应用 RESTRICTIVE 策略。 - PERMISSIVE策略:系统会尽可能地允许访问。如果任何一个策略允许访问,则访问请求会被批准。
- RESTRICTIVE策略:系统要求所有相关的权限管控策略都必须允许访问,任何单一策略的拒绝都会导致整个访问请求被拒绝。
|
您可以单击操作列的添加按钮,继续添加行限制策略。
完成所有行限制策略添加后,单击下方的立即创建,完成行权限策略创建。
授权给用户/角色
创建完成行权限策略后,您可在行权限策略列表页单击后方的权限授予按钮,将权限授予给用户或角色。

编辑/删除行权限策略
您可在行权限策略列表页单击后方编辑、删除按钮,对已创建的行权限策略进行编辑或删除操作。
