联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
6.6.5.4 管理 HDFS 读写权限
更新时间:11/3/2023, 7:07:16 AM

在ArgoDB中对HDFS目录的操作都是以hive用户来进行的,例如创建表在HDFS的warehouse目录下的目录、向该目录中写入数据等。其他用户对这些文件并没有读写权限。

在某些情况下,用户有对某张表的 SELECT 权限,并期望能够直接从该表在HDFS的目录中读取到对应表的数据,因此用户需要这些HDFS文件的权限(r, w, x),使得该用户能够直接获取HDFS上相应的数据。

ArgoDB中提供了通过SQL设置表对应的HDFS目录的FACL()。ArgoDB支持对用户组设置 ACL。

HDFS需要开启 AC L功能:参数 dfs.namenode.acls.enabled 的值应该为 true。您可以在 Manager 管理界面的 HDFS 服务配置页面查看和修改这个参数。

设置用户/组对某张表的FACL
语法:设置用户/组对某张表的FACL
GRANT
  FACL '<permissions>' (1)
  ON TABLE <table>
  TO USER|GROUP <user_or_group_name>; (2)
复制
1 <permissions> 需要写作 rwx, rw-, r-x, -wx, r--, -w-, --x---,并且放在单引号或者双引号之间。
2 和授予TABLE/VIEW/DATABASE权限不同,HDFS目录的权限一次只能授予一个用户/组。

设置用户/组对某张表的FACL所需权限

  • ADMIN 和表owner可以将任意权限赋予任何人或者组。

  • 对表有 SELECT 权限的用户可以赋予 r-x 给自己。

  • 对表有 INSERT 权限的用户可以赋予 -w- 给自己。

  • 既具有 SELECT 又具有 INSERT 权限的用户可以赋予 rwx 给自己。

例 36. 设置用户bob对表alice_t1的FACL
GRANT FACL 'rwx' ON TABLE alice_t1 TO USER bob;
复制
取消用户/组对某张表的FACL
语法:取消用户/组对某张表的FACL
REVOKE
  FACL
  ON TABLE <table>
  FROM USER|GROUP <user_or_group_name>;
复制
取消用户/组对某张表的FACL所需权限
  • ADMIN 和表的Owner可以将任意用户/组对该表的FACL取消。

  • 普通用户只能取消自己对该表的FACL。

取消用户组bob对表alice_t1的FACL
REVOKE FACL ON TABLE alice_t1 FROM USER bob;
复制
取消某张表上的全部FACL
语法:取消某张表上的全部FACL
REVOKE
  FACL
  ON TABLE <table_name>;
复制

取消某张表上的全部FACL所需权限

只有 ADMIN 或者表的owner可以执行该命令

查看用户/组对某张表的FACL
语法:查看用户/组对某张表的FACL
SHOW
  FACL
  USER|GROUP <user_or_group_name>
  ON TABLE <table_name>;
复制

查看用户/组对某张表的FACL所需权限

ADMIN、表的owner或者用户自己有权限执行该命令。

例 37. 查看用户bob对表alice_t1的FACL

重新赋予bob对alice_t1的 rwx 权限,并查看。

GRANT FACL 'rwx' ON TABLE alice_t1 TO USER bob;
SHOW FACL USER bob ON TABLE alice_t1;
复制
facl

user:bob:rwx

default:user:bob:rwx

该结果反映出以下两点信息:

用户bob对表alice_t1在HDFS上的目录有 rwx 权限。

用户bob对alice_t1的目录的权限可以向下传递到alice_t1目录的子目录。

查看某张表上的所有FACL
语法:查看某张表上的所有FACL
SHOW
  FACL
  ON TABLE <table_name>;
复制

查看某张表上的所有FACL所需权限

ADMIN 表owner有权限执行该命令。

例 38. 查看表alice_t1上的所有FACL
GRANT FACL 'rwx' ON TABLE alice_t1 TO GROUP sales;
SHOW FACL ON TABLE alice_t1;
复制
facl

user:bob:rwx

group::r-x

group:sales:rwx

default:user::rwx

default:user:bob:rwx

default:group::r-x

default:group:sales:rwx

default:mask::rwx

default:other::r-x

该结果反映出以下两点信息:

用户组sales对表alice_t1在HDFS上的目录有 rwx 权限。

用户组sales对alice_t1的目录的权限可以向下传递到alice_t1目录的子目录。