Hive表权限

一、赋角色权限

  • 创建和删除角色
create role role_name;  
drop role role_name;
  • 展示所有roles
show roles  
--赋予角色权限  
grant select on database db_name to role role_name;    
grant select on [table] t_name to role role_name;    
--查看角色权限  
show grant role role_name on database db_name;   
show grant role role_name on [table] t_name;   
--角色赋予用户  
grant role role_name to user user_name  
--回收角色权限  
revoke select on database db_name from role role_name;  
revoke select on [table] t_name from role role_name;  
--查看某个用户所有角色  
show role grant user user_name;

二、赋用户权限

# 赋予用户权限
grant [SELECT|...] on [database|table] [db_name|tbl_name ] to user [username];
grant select(tab_col) on table [tbl_name] to user [username];
# 回收用户权限
revoke [ALL|...] on [database|table] [db_name|tbl_name ] from user [username];
# 查看用户权限
show grant user [username] on [database|table] [db_name|tbl_name];

三、hive支持权限

HIVE权限赋予流程图 hive表给用户赋权_hadoop

四、部分hdfs

4.1 详解

HDFS实现了一个类似POSIX模型的文件和文件夹权限管理模型。每一个文件盒文件夹都有一个所有者和一个组。文件或者文件夹可以通过权限区分是所有者还是组成员或是其他用户。对文件来说,r标示可以阅读文件,w标示可以写入文件,对于文件夹来说,r标示可以阅读其下的内容,w可以创建或者删除文件或文件夹,x标示进入其子节点

4.2 UGO 权限相关操作

变更目录或文件的权限位
 hadoop fs -chmod 750 /user/portal/foo
变更目录或文件的属主或用户组
hadoop fs -chown :portal /user/portal/foo
变更用户组
hadoop fs -chgrp portal_group1 /user/portal/foo

需要注意的是,使用这个命令的用户必须是超级用户,或者是该文件的属主,同时也是该用户组的成员。另外目录的权限组变更后,需要手动刷新用户组才能让变更生效。

1、在Linux执行如下命令增加supergroup
groupadd supergroup

2、如将用户yarn增加到supergroup中,再执行:
usermod -a -G supergroup yarn

3、同步系统的权限信息到HDFS:
su - hdfs -s /bin/bash -c "hdfs dfsadmin -refreshUserToGroupsMappings"

4、验证
1) 将/user/hdfs目录的权限由700,修改为770
su - hdfs -s /bin/bash -c "hadoop fs -chmod 770 /user/hdfs"

2) 通过加到supergroup组中的yarn用户去列这个目录:
su - yarn -s /bin/bash -c "hadoop fs -ls /user/hdfs"