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>  



 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值