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
role_test1 false hadoop
Time taken: 0.058 seconds, Fetched: 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
Time taken: 0.028 seconds, Fetched: 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 hadoop
Time taken: 0.042 seconds, Fetched: 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配置,并实现自己的权限控制类。

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

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

Hive 基本语法操练(六):Hive 的权限控制的更多相关文章

  1. Hive基本语法操练

    建表规则如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

  2. Hive 基本语法操练(二):视图和索引操作

    1. 视图操作 ------- 1) 创建一个测试表. ``` hive> create table test(id int,name string); OK Time taken: 0.385 ...

  3. Hive 基本语法操练(一):表操作

    Hive 和 Mysql 的表操作语句类似,如果熟悉 Mysql,学习Hive 的表操作就非常容易了,下面对 Hive 的表操作进行深入讲解. **(1)先来创建一个表名为student的内部表** ...

  4. 初读"Thinking in Java"读书笔记之第六章 --- 访问权限控制

    包:库单元 包内包含有一组类,他们在单一的名字空间下被组织在一起. 通过import ***.***.*可以将某个包下的所有类导入到当前文件中. 每个Java源文件最多只能有一个public类,且名称 ...

  5. 《Java编程思想》笔记 第六章 访问权限控制

    1.编译单元 一个 编译单元即 .java 文件 内只能有一个 public 类  且该文件名必须与public 类名 完全一致. 编译单元内也可以没有public类 文件名可随意. 2. 包:库单元 ...

  6. Hive 基本语法操练(五):Hive 的 JOIN 用法

    Hive 的 JOIN 用法 hive只支持等连接,外连接,左半连接.hive不支持非相等的join条件(通过其他方式实现,如left outer join),因为它很难在map/reduce中实现这 ...

  7. Hive 基本语法操练(四):Hive 复合类型

    hive语法中主要提供了以下复合数据类型: 1)Structs: structs内部的数据可以通过DOT(.)来存取.例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c. ...

  8. Hive 基本语法操练(三):分区操作和桶操作

    (一)分区操作 Hive 的分区通过在创建表时启动 PARTITION BY 实现,用来分区的维度并不是实际数据的某一列,具体分区的标志是由插入内容时给定的.当要查询某一分区的内容时可以采用 WHER ...

  9. 《Think in Java》(六)访问权限控制

    类访问权限:public,default(包访问权限的类,在包外可以调用该类的static成员) 类属性访问权限:public,protected,default,private

随机推荐

  1. Azure上部署Barracuda WAF集群 --- 1

    公有云上的第一层防护,一般要采用Proxy模式的安全设备. 梭子鱼的WAF是最早支持Azure China公有云的安全设备. 本文记录了在Azure上安装部署Barracuda的过程.下面就是安装部署 ...

  2. java代码for循环+缓冲流类

    总结:这个结果竟然是对的.我错了. package com.da; //创建一个String对象的数组,然后执行读取文本,把文本每一行存入数组,它将读取到100行 //或直接到你按”stop“才停止, ...

  3. SVD实例

    >> X = rand(5,7) X = 0.9797 0.1365 0.6614 0.5828 0.2259 0.2091 0.5678 0.2714 0.0118 0.2844 0.4 ...

  4. linux日常管理-sar工具

    查看网卡瓶颈 查看网卡流量 默认10分钟一次 查看实时流量  每秒钟显示一次 显示5次 网卡有 lo eth0   主要看eth0外网  rxbyt/s 进网口和 txbyt/s出网口 带宽看txby ...

  5. ssh功能模块——paramiko

    参考官网文档:http://docs.paramiko.org/

  6. 树莓派 Learning 002 装机后必要的操作 --- 10 实现本地电脑与远程桌面之间复制粘贴(传输)文件

    树莓派 装机后必要的操作 - 实现本地电脑与远程桌面之间复制粘贴(传输)文件 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 PC端系统:w ...

  7. Free Style Structure text

    最近用了很多文本配置输入,考虑一个最简单的格式,适合C语言scanf读写数据. 基本数据类型直接使用常用形式. double 直接用小数,对应%f读取. int 直接用十进制整数,对应%d读取. ch ...

  8. 从零开始安装 Ambari (2) -- 准备本地 repository

    安装 Ambari,最后是为了用它部署 hadoop 集群.安装时默认使用的是 hortonworks 远程的资源,用它部署集群时,需要下载 Hadoop.Hive.HBase 的安装包,速度很慢.我 ...

  9. KONG -- 图形化管理(Kong Dashboard)

    前面安装的 KONG 的版本是社区版的 1.0.2,官方的 KONG Manager 好像只有企业版才提供.在 github 上找了一个开源的图形化管理应用 -- Kong Dashboard (ht ...

  10. SQL Server 2012 安装——安装 OR 卸载

    前言     上篇介绍了.net framework 3.5的安装,这次介绍一下,SQL Server2012的安装和彻底卸载.根据百度,下面是自己根据自己实际情况整理的安装步骤: 安装 见安装步骤( ...