在使用Hive的元数据配置权限之前必须现在hive-site.xml中配置两个参数,配置参数如下:
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>ALL</value>
</property>
hive.security.authorization.enabled参数是开启权限验证,默认为false。
hive.security.authorization.createtable.owner.grants参数是指表的创建者对表拥有所有权限。
Hive授权的核心就是用户(User)、组(Group)、角色(Role),Hive中的角色和平常认知的角色是有区别的。Hive中的角色可以理解为一部分有一些相同“属性”的用户或组或角色的集合。这里有个递归的概念,就是一个角色可以是一些角色的集合。
1.创建角色:create role role1;
2.删除角色:drop role role1;
3.授权角色:grant select on database default to role role1;
4.撤销角色权限:revoke select on database default from role role1;
5.将角色授权给用户:grant role role1 to user root;
6.撤销用户的角色:revoke role role1 from user root;
7.授权用户:grant select on database default to user root;
8.撤销用户权限:revoke select on database default from user root;
9.查看用户的角色:show role grant user root;
10.查看用户的权限:show grant user root;
HIVE权限可选:
ALL 所有权限
ALTER允许修改元数据(modify metadata data of object)---表信息数据
UPDATE允许修改物理数据(modify physical data of object)---实际数据
CREATE允许进行Create操作
DROP允许进行DROP操作
INDEX允许建索引(目前还没有实现)
LOCK当出现并发的使用允许用户进行LOCK和UNLOCK操作
SELECT允许用户进行SELECT操作
SHOW_DATABASE允许用户查看可用的数据库