zoukankan      html  css  js  c++  java
  • Hive 基本语法操练(六):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配置,并实现自己的权限控制类。

     

    以上就是博主为大家介绍的这一板块的主要内容,这都是博主自己的学习过程,希望能给大家带来一定的指导作用,有用的还望大家点个支持,如果对你没用也望包涵,有错误烦请指出。如有期待可关注博主以第一时间获取更新哦,谢谢! 

     版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Codeforces 552E Vanya and Brackets(枚举 + 表达式计算)
    matlab 文件打开设置
    boot and loader
    centos6安装bochs
    Python list, dict, set, tuple
    Python 字符串
    Visual Studio 使用
    汇编语言版本的HelloWorld
    用汇编实现add函数
    使用nasm和clang
  • 原文地址:https://www.cnblogs.com/zimo-jing/p/9079538.html
Copyright © 2011-2022 走看看