列级访问权限
本章节主要说明列级访问权限在 ByteHouse 中的执行方式以及用户配置方式。列级访问控制允许用户为列配置权限,保障只有特定用户可以访问。该功能对于限制访问敏感列(如个人身份信息PII)尤其有用。
配置列级访问控制
要提供列级权限,首先需要向用户提供相关的表级权限,如下所示:
列操作 | 所需的表操作 |
---|---|
SELECT | SELECT |
INSERT | INSERT |
ALTER | ALTER |
DROP | ALTER |
为特定列授予权限
您可以指定应由特定角色访问的列。如下图,“ demo_role ”被授予 SELECT
和 demo_col_one
的权限。
一旦“ 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!
要授予用户更多列的额外权限,只需勾选表格中相应的复选框:
例如,通过在 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!
为所有列授予权限
如要授予特定用户权限,并在包括未来创建的所有列生效,只需点击相应的列标题即可。
此权限应授予可以访问所有列(包括未来可能添加的敏感信息列)的角色。由于开启了 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!
Updated over 3 years ago