TOP

hive表权限管理
2018-12-04 17:15:07 】 浏览:836
Tags:hive 权限 管理

hive权限控制:


1.0.X版本的hive对表权限控制基于linux的用户和用户组权限(使用setfacl getfacl)


2.0.x版本的hive可以针对表的create select truncate drop等操作权限进行控制
<property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>ALL</value>
</property>


表示用户自己创建的表有所有权限


<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
<description>enable or disable the hive clientauthorization</description>
</property>


开启权限验证


<property>
<name>hive.metastore.authorization.storage.checks</name>
<value>true</value>
</property>
当hive.metastore.authorization.storage.checks属性被设置成true时,
Hive将会阻止没有权限的用户进行表删除操作。
不过这个配置的默认值是false,应该设置成true


<property>
<name>hive.files.umask.value</name>
<value>0002</value>
<description>The dfs.umask value for the hive created folders</description>
</property>
配置新建文件的默认权限。


set system:user.name;
查看用户对数据库权限:SHOW GRANT USER hduser0508 ON DATABASE default;
查看用户对表的权限:SHOW GRANT USER hduser0508 ON table zq_cust_charge_fee;(默认是all。对应用户自己的表)


(1)当Hive里面用于N多用户和N多张表的时候,管理员给每个用户授权每张表会让他崩溃的。
所以,这个时候就可以进行组(GROUP)授权。
Hive里的用户组的定义等价于POSIX里面的用户组。
授权: GRANT SELECT on table authorization_test_group to group edward;
(2)当给用户组授权变得不够灵活的时候,角色(ROLES)就派上用途了。
用户可以被放在某个角色之中,然后角色可以被授权。
角色不同于用户组,是由Hadoop控制的,它是由Hive内部进行管理的。
hive> CREATE TABLE authentication_test_role (a int , b int);
hive> SELECT * FROM authentication_test_role; (没权限)


hive> CREATE ROLE users_who_can_select_authentication_test_role;
hive> GRANT ROLE users_who_can_select_authentication_test_role TO USER edward;
hive> GRANT SELECT ON TABLE authentication_test_role TO ROLE users_who_can_select_authentication_test_role;
hive> SELECT * FROM authentication_test_role;
OK




常用权限:
ALTER 更改表结构,创建分区
CREATE 创建表
DROP 删除表,或分区
INDEX 创建和删除索引
LOCK 锁定表,保证并发
SELECT 查询表权限
SHOW_DATABASE 查看数据库权限
UPDATE 为表加载本地数据的权限


分区表的授权:默认情况下,分区表的授权将会跟随表的授权
当然,也可以给每一个分区建立一个授权机制,
只需要设置表的属性PARTITION_LEVEL_PRIVILEGE设置成TRUE:
hive> ALTER TABLE authorization_part SET TBLPROPERTIES ("PARTITION_LEVEL_PRIVILEGE"="TRUE");


自动授权
属性hive.security.authorization.createtable.owner.grants决定了
建表者对表拥有的权限,一版情况下,有select和drop


类似的,特定的用户可以被在表创建的时候自动授予其权限。
<property>
<name>hive.security.authorization.createtable.user.grants</name>
<value>admin1,edward:select;user1:create</value>
</property>




hive表权限管理 https://www.cppentry.com/bencandy.php?fid=117&id=194406

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hive导入数据的3种方式 下一篇Hive总结(三)hive组件和执行过程