Hive 的权限控制

Hive 的权限控制

 Hive从0.10可以通过元数据控制权限。但是Hive的权限控制并不是完全安全的。基本的授权方案的目的是防止用户不小心做了不合适的事情。

 为了使用Hive的授权机制,有两个参数必须在hive-site.xml中设置:

< property> 
    < name>hive.security.authorization.enabled< /name> 
    < value>true< /value> 
     < description>enable or disable the hive client authorization< /description> 
 < /property> 
 
< property> 
     < name>hive.security.authorization.createtable.owner.grants< /name> 
     < value>ALL< /value> 
     < description>the privileges automatically granted to the owner whenever a table gets created. An example like "select,drop" will grant select and drop privilege to the owner of the table< /description>
< /property>

 hive.security.authorization.enabled //参数是开启权限验证,默认为 false。

 hive.security.authorization.createtable.owner.grants //参数是指表的创建者对表拥有所有权限。

角色的创建和删除

 Hive 中的角色定义与关系型数据库中角色的定义类似,它是一种机制,给予那些没有适当权限的用户分配一定的权限。

 1) 创建角色。

语法:hive> create role role_name;
示例:hive> create role role_tes1;

 2) 删除角色。

语法:drop role role_name
示例:drop role role_test1;

角色的授权和撤销

 1) 把 role_test1 角色授权给 xiaojiang 用户,命令如下。

hive> grant role role_test1 to user hive;
OK
Time taken: 0.18 seconds

 2) 查看 xiaojiang 用户被授权的角色,命令如下。

hive> show role grant user hive;
OK
public    false    0    
role_test1    false    1527110568000    hadoop
Time taken: 0.058 seconds, Fetched: 2 row(s)

 3) 取消 xiaojiang 用户的 role_test1 角色,命令如下。

hive> revoke role role_test1 from user hive;
OK
Time taken: 0.029 seconds
hive> show role grant user hive;            
OK
public    false    0    
Time taken: 0.028 seconds, Fetched: 1 row(s)

Hive 支持的权限控制。

 1) 把 select 权限授权给 xiaojiang 用户,命令如下。

hive> grant select on database default to user hive;
OK
Time taken: 0.07 seconds

2) 查看 xiaojiang 被授予那些操作权限,命令如下。

hive> show grant user hive on database default;
OK
default                hive    USER    SELECT    false    1527110740000    hadoop
Time taken: 0.042 seconds, Fetched: 1 row(s)

 3) 收回 xiaojiang 的 select 权限,操作如下。

hive> revoke select on database default from user hive;
OK
Time taken: 0.027 seconds

 4) 查看 xiaojiang 用户拥有哪些权限,命令如下。

hive> show grant user hive on database default;
OK
Time taken: 0.039 seconds

超级管理权限

 HIVE本身有权限管理功能,需要通过配置开启。

< property> 
    < name>hive.metastore.authorization.storage.checks< /name>
    < value>true< /value>
< /property>

< property>
    < name>hive.metastore.execute.setugi< /name>
    < value>false< /value>
< /property>

< 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.createtable.owner.grants设置成ALL表示用户对自己创建的表是有所有权限的(这样是比较合理地)。

 开启权限控制有Hive的权限功能还有一个需要完善的地方,那就是“超级管理员”。 Hive中没有超级管理员,任何用户都可以进行Grant/Revoke操作,为了完善“超级管理员”,必须添加hive.semantic.analyzer.hook配置,并实现自己的权限控制类。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive可以通过元数据的权限管理和文件存储级别的权限管理来实现权限控制。在使用Hive的授权机制之前,需要在hive-site.xml中设置两个参数:hive.security.authorization.enabledhive.security.authorization.createtable.owner.grants。hive.security.authorization.enabled用于启用或禁用Hive客户端的授权机制,而hive.security.authorization.createtable.owner.grants用于设置在创建表时自动授予表所有者的权限。 在Hive中,权限控制的核心是用户、组和角色。角色可以理解为有一些相同属性的用户或组的集合。用户和组使用的是Linux机器上的用户和组,而角色需要自己创建。可以通过创建角色并赋予相应的权限,然后将角色分配给用户或组,来实现指定用户访问指定数据库的权限控制。 通过Hive权限管理,可以实现对库级别、表级别和列级别的访问权限控制。这样可以确保Hive的使用符合数据仓库的安全原则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Hive 如何进行权限控制](https://blog.csdn.net/weixin_59295776/article/details/122372080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Hive权限设置说明](https://download.csdn.net/download/javajxz008/10546997)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值