数据湖权限管理

Volume 和 Remote Function 都是 Schema 下的对象。创建对象所需的权限授予在父 Schema 上;读取、使用、修改和删除已有对象所需的权限授予在具体对象上。通过区分创建权限和对象权限,可以避免为了访问单个对象而授予过大的 Schema 权限。

本文介绍以下两类对象的权限:

  1. Volume 对象权限
  2. Remote Function 对象权限

Volume 对象权限

权限层级权限用途
Schema
CREATE VOLUME
CREATE VOLUME
在指定 Schema 下创建 Named Volume 或 External Volume
Volume
READ METADATA
READ METADATA
查看 Volume 对象元数据
Volume
READ VOLUME
READ VOLUME
列出、查询和下载 Volume 中的文件
Volume
WRITE VOLUME
WRITE VOLUME
上传或删除 Volume 中的文件
Volume
ALTER VOLUME
ALTER VOLUME
修改 Volume 或刷新 External Volume 的文件元数据
Volume
DROP VOLUME
DROP VOLUME
删除指定 Volume
Volume
ALL PRIVILEGES
ALL PRIVILEGES
包含该 Volume 的全部对象权限

CREATE VOLUME
CREATE VOLUME
只能授予父 Schema,
DROP VOLUME
DROP VOLUME
只能授予具体 Volume。例如:

GRANT CREATE VOLUME ON SCHEMA public TO ROLE volume_admin; GRANT DROP VOLUME ON VOLUME public.shared_files TO ROLE volume_admin;

权限名中的

VOLUME
VOLUME
可以省略,例如
GRANT READ ON VOLUME ...
GRANT READ ON VOLUME ...
,但建议使用完整权限名。
SHOW GRANTS
SHOW GRANTS
会将短写法显示为
READ VOLUME
READ VOLUME
WRITE VOLUME
WRITE VOLUME
ALTER VOLUME
ALTER VOLUME
DROP VOLUME
DROP VOLUME

授权新用户访问 Volume

以下示例创建只读角色,并授权用户读取

public.shared_files
public.shared_files

CREATE ROLE volume_reader; GRANT READ VOLUME ON VOLUME public.shared_files TO ROLE volume_reader; GRANT ROLE volume_reader TO USER datalake_user;

用户执行查询或文件操作时还需要可用的计算集群。若用户还需要上传文件和刷新 External Volume 的文件元数据,增加以下权限:

GRANT USE VCLUSTER ON VCLUSTER DEFAULT TO USER datalake_user; GRANT WRITE VOLUME ON VOLUME public.shared_files TO USER datalake_user; GRANT ALTER VOLUME ON VOLUME public.shared_files TO USER datalake_user;

授予 Volume 对象权限时,系统会同时授予父 Schema 的

READ METADATA
READ METADATA
,使被授权方能够发现并引用该 Volume。可使用
SHOW GRANTS TO USER datalake_user
SHOW GRANTS TO USER datalake_user
SHOW GRANTS TO ROLE volume_reader
SHOW GRANTS TO ROLE volume_reader
查看最终权限。

Remote Function 对象权限

权限层级权限用途
Schema
CREATE FUNCTION
CREATE FUNCTION
在指定 Schema 下创建 Function
Function
READ METADATA
READ METADATA
查看 Function 对象元数据
Function
USE FUNCTION
USE FUNCTION
调用指定 Function
Function
ALTER FUNCTION
ALTER FUNCTION
修改指定 Function
Function
DROP FUNCTION
DROP FUNCTION
删除指定 Function
Function
ALL PRIVILEGES
ALL PRIVILEGES
包含该 Function 的全部对象权限

CREATE FUNCTION
CREATE FUNCTION
只能授予父 Schema,
DROP FUNCTION
DROP FUNCTION
只能授予具体 Function。Function 权限名中的
FUNCTION
FUNCTION
可以省略,但建议在文档和运维脚本中使用完整权限名。

授权用户使用 Remote Function

以下命令允许用户

datalake_user
datalake_user
调用
public.fc_image_2_text
public.fc_image_2_text

GRANT USE FUNCTION ON FUNCTION public.fc_image_2_text TO USER datalake_user;

该权限只允许调用已有 Function。若用户需要创建 Function,还需在父 Schema 上授予

CREATE FUNCTION
CREATE FUNCTION

GRANT CREATE FUNCTION ON SCHEMA public TO USER datalake_user;

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询