列级访问权限

本章节主要说明列级访问权限在 ByteHouse 中的执行方式以及用户配置方式。列级访问控制允许用户为列配置权限,保障只有特定用户可以访问。该功能对于限制访问敏感列(如个人身份信息PII)尤其有用。

配置列级访问控制

要提供列级权限,首先需要向用户提供相关的表级权限,如下所示:

列操作所需的表操作
SELECTSELECT
INSERTINSERT
ALTERALTER
DROPALTER

为特定列授予权限

您可以指定应由特定角色访问的列。如下图,“ demo_role ”被授予 SELECTdemo_col_one 的权限。

2098

一旦“ demo_role ”被授予以上权限,“ demo_role ”将能只能从 demo_col_one 这一列进行查询操作。

SELECT demo_col_one FROM demo_db.demo_table -- success!

SELECT demo_col_one, demo_col_two FROM demo_db.demo_table -- denied!

要授予用户更多列的额外权限,只需勾选表格中相应的复选框:

860

例如,通过在 demo_col_two 上添加 SELECT 权限,“ demo_role ”现在也可以从 demo_col_two 执行查询操作:

SELECT demo_col_one FROM demo_db.demo_table -- okay!

SELECT demo_col_one, demo_col_two FROM demo_db.demo_table -- access denied!

为所有列授予权限

如要授予特定用户权限,并在包括未来创建的所有列生效,只需点击相应的列标题即可。

856

此权限应授予可以访问所有列(包括未来可能添加的敏感信息列)的角色。由于开启了 SELECT 权限,“ demo_role ”现在可以使用 SELECT * 来查看所有列的数据。

SELECT demo_col_one from demo_db.demo_table -- okay!

SELECT demo_col_one, demo_col_two from demo_db.demo_table -- okay!

SELECT * from demo_db.demo_table -- okay!