一、开启权限

眼下hive支持简单的权限管理,默认情况下是不开启。这样全部的用户都具有同样的权限。同一时候也是超级管理员。也就对hive中的全部表都有查看和修改的权利,这样是不符合一般数据仓库的安全原则的。Hive能够是基于元数据的权限管理。也能够基于文件存储级别的权限管理。此次以介绍MetaData权限管理为主。通过下面配置开启Hive身份认证功能进行权限检查:

<property>

<name>hive.security.authorization.enabled</name>

<value>true</value>

<description>enable or disable the hive client authorization</description>

</property>

开启身份认证后,不论什么用户必须被grant privilege才干对实体进行操作。

有一个表创建者对所创建表的权限配置:

<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>

默认配置是NULL,设置成ALL,表示创建者对其创建的表拥有全部的权限,这样也是比較合理的。同一时候也能够通过配置在表创建时给某个role赋予权限:

<property>

<name>hive.security.authorization.createtable.role.grants</name>

<value>admin_role:ALL</value>

</property>

当然也能够在创建时对user,group赋予权限

二、权限操作

在hive命令行下能够通过set system:user.name;查看当前hiveusername,也即OS的登录用户。

开启权限认证,在命令行下创建表:

hive>CREATE TABLE auth_test (key int, value string);

Authorization failed:No privilege 'Create' found for outputs { database:default}.Use show grant to get more details.

此时会创建失败。默认情况下用户是没有创建表权限的。运行

hive>Grant create on database defaut to user test

后又一次创建表则会成功。能够通过 desc extended auth_test查看包含表全部者在内的表具体信息

默认情况下其它的用户也是是没有权限读取auth_test中不论什么列,以另外一个用户登录os在hive下运行:

hive>Select key from auth_test;

出现下面错误:

Authorization failed:No privilege 'Select' found for inputs { database:default, table:auth_test, columnName:key}. Use show grant to get more details.

运行:

grant select(key) on table auth_test to user test1;

后查询则能够成功

Grant/revoke语法:

grant/revoke priv_type[column_list] on object_type object to/from principal_type principal_name

查看grant 定义:

show grant user user_name on table table_name;

三、Role:

此外Hive还支持基于role的授权认证,role是一组权限的集合,一个role能够被grant给多个用户。全部拥有role的用户都具有与此role相匹配的权限,通过对role权限的管理能够间接控制用户的权限。因此在一个多用户的大型系统中。role无疑更方便于权限管理。

创建/删除角色:

Create/drop Role role_name

角色分配/回收:

Grant role role_name to user user_name

Revoke role role_name from user user_name

角色授权:

Grant/revoke priv_type[col_List] on object_type object from/to role role_name

查看role定义:

show role grant role role_name

四、权限MetaData:

登录hive元数据库。能够发现下面表:

Db_privs:记录了User/Role在DB上的权限

Tbl_privs:记录了User/Role在table上的权限

Tbl_col_privs:记录了User/Role在table column上的权限

Roles:记录了全部创建的role

Role_map:记录了User与Role的相应关系

Hive权限介绍的更多相关文章

  1. Hive 接口介绍(Web UI/JDBC)

    Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanl ...

  2. Hive权限管理(十)

    Hive权限管理 1.hive授权模型介绍 (1)Storage Based Authorization in the Metastore Server 基于存储的授权 - 可以对Metastore中 ...

  3. Hive权限控制和超级管理员的实现

    Hive权限控制 Hive权限机制: Hive从0.10可以通过元数据控制权限.但是Hive的权限控制并不是完全安全的.基本的授权方案的目的是防止用户不小心做了不合适的事情. 先决条件: 为了使用Hi ...

  4. hive权限管理之实践

    一.实践心得 主要参考这个连接,里面说得也挺详细的.http://www.aboutyun.com/thread-12549-1-1.html 总结如下: 1.若赋予用户某个表的权限,查用户在该表所属 ...

  5. 关于android 1.6全部的权限介绍

    原文:关于android 1.6全部的权限介绍 我们在 AndroidManifest.xml里需要对一些软件需要的操作做一些权限的声明,比如我们的软件有发送短信的功能,那么就需要在 AndroidM ...

  6. hive权限配置

    基于CDH5.x的Hive权限配置 1.打开权限控制,默认是没有限制的 set hive.security.authorization.enabled=true; 2.配置默认权限 hive.secu ...

  7. Hive记录-hive权限控制

    在使用Hive的元数据配置权限之前必须现在hive-site.xml中配置两个参数,配置参数如下: <property> <name>hive.security.authori ...

  8. Hive权限管理

    最近遇到一个hive权限的问题,先简单记录一下,目前自己的理解不一定对,后续根据自己的理解程度更新 一.hive用户的概念 hive本身没有创建用户的命令,hive的用户就是Linux用户,若当前是用 ...

  9. HADOOP docker(七):hive权限管理

    1. hive权限简介1.1 hive中的用户与组1.2 使用场景1.3 权限模型1.3 hive的超级用户2. 授权管理2.1 开启权限管理2.2 实现超级用户2.3 实现hiveserver2用户 ...

随机推荐

  1. POJ 1552 Doubles (C++ STL set使用)

    题目: 题意:题意:给出几个正数(2~15个),然后就是求有这些数字的2倍有没有和原先的正数相同的,求出有几个,没有就是0. 分析:水题.用数组解决,开一个数组存正数,另开一个数组用来存这些数的2倍, ...

  2. Can't obtain the input stream from /docProps/app.xml

    今天在做poi修改样式时,报了以下错误: Exception in thread "main" org.apache.poi.POIXMLException: java.io.IO ...

  3. 【持续更新】D3 的学习资料

    经常有朋友问哪里有关于 D3 的比较好的学习资料,现整理成此文.以后找到更多更好的,会不断更新本文. 我是在2013年开始接触 D3 的,当时就觉得这个工具很好玩.至今,学习资料整理了不少.如果有朋友 ...

  4. (三)学习MVC之密码加密及用户登录

    1.密码加密采用SHA256 算法,此类的唯一实现是 SHA256Managed.在Common/Text.cs里添加Sha256方法: public static string Sha256(str ...

  5. [转] MATLAB快捷键

    原文地址:MATLAB快捷键大全 (转载)作者:掷地有声 一.索引混排版 备注:删除了如F1(帮助)等类型的常见快捷命令 SHIFT+DELETE永久删除 DELETE删除 ALT+ENTER属性 A ...

  6. 重温delphi之:如何将Bitmap位图与base64字符串相互转换

    先引用delphi自带的单元 uses EncdDecd; 然后就可以使用下面二个函数了: by 菩提树下的杨过 http://yjmyzz.cnblogs.com/ ///将Bitmap位图转化为b ...

  7. android xml文件

    一.布局文件:在layout目录下,使用比较广泛: 我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),系统会根 ...

  8. HDU 2295 Radar dancing links 重复覆盖

    就是dancing links 求最小支配集,重复覆盖 精确覆盖时:每次缓存数据的时候,既删除行又删除列(这里的删除列,只是删除表头) 重复覆盖的时候:只删除列,因为可以重复覆盖 然后重复覆盖有一个估 ...

  9. 【DOM】2.闭包

    1.什么是闭包? 函数嵌套函数 内部函数可以引用外部函数的参数和变量 参数和变量不会被JS中的垃圾回收机制 所收回 2.闭包有啥好处?应用在哪? ①希望一个变量长期驻扎在内存中 ②避免全局变量的污染 ...

  10. input文字方框中,字体颜色的变化 要求默认的字体颜色是灰色,当要输入字时,字体是正常的黑色

    1 <input type=text name='address' size=60 maxlength=60 style="color:gray" value="( ...