数据湖权限管理
Volume 和 Remote Function 都是 Schema 下的对象。创建对象所需的权限授予在父 Schema 上;读取、使用、修改和删除已有对象所需的权限授予在具体对象上。通过区分创建权限和对象权限,可以避免为了访问单个对象而授予过大的 Schema 权限。
本文介绍以下两类对象的权限:
- Volume 对象权限
- Remote Function 对象权限
Volume 对象权限
| 权限层级 | 权限 | 用途 |
|---|---|---|
| Schema | | 在指定 Schema 下创建 Named Volume 或 External Volume |
| Volume | | 查看 Volume 对象元数据 |
| Volume | | 列出、查询和下载 Volume 中的文件 |
| Volume | | 上传或删除 Volume 中的文件 |
| Volume | | 修改 Volume 或刷新 External Volume 的文件元数据 |
| Volume | | 删除指定 Volume |
| Volume | | 包含该 Volume 的全部对象权限 |
CREATE VOLUME 只能授予父 Schema,DROP VOLUME 只能授予具体 Volume。例如:
权限名中的
VOLUME 可以省略,例如 GRANT READ ON VOLUME ...,但建议使用完整权限名。SHOW GRANTS 会将短写法显示为 READ VOLUME、WRITE VOLUME、ALTER VOLUME 或 DROP VOLUME。
授权新用户访问 Volume
以下示例创建只读角色,并授权用户读取
public.shared_files:
用户执行查询或文件操作时还需要可用的计算集群。若用户还需要上传文件和刷新 External Volume 的文件元数据,增加以下权限:
授予 Volume 对象权限时,系统会同时授予父 Schema 的
READ METADATA,使被授权方能够发现并引用该 Volume。可使用 SHOW GRANTS TO USER datalake_user 或 SHOW GRANTS TO ROLE volume_reader 查看最终权限。
Remote Function 对象权限
| 权限层级 | 权限 | 用途 |
|---|---|---|
| Schema | | 在指定 Schema 下创建 Function |
| Function | | 查看 Function 对象元数据 |
| Function | | 调用指定 Function |
| Function | | 修改指定 Function |
| Function | | 删除指定 Function |
| Function | | 包含该 Function 的全部对象权限 |
CREATE FUNCTION 只能授予父 Schema,DROP FUNCTION 只能授予具体 Function。Function 权限名中的 FUNCTION 可以省略,但建议在文档和运维脚本中使用完整权限名。
授权用户使用 Remote Function
以下命令允许用户
datalake_user 调用 public.fc_image_2_text:
该权限只允许调用已有 Function。若用户需要创建 Function,还需在父 Schema 上授予
CREATE FUNCTION:
联系我们
