Hive 的权限管理

这篇具有很好参考价值的文章主要介绍了Hive 的权限管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

目录

​编辑

一、Hive权限简介

1.1 hive中的用户与组

1.1.1 用户

1.1.2 组

1.1.3 角色

1.2 使用场景

1.2.1 hive cli

1.2.2 hiveserver2

1.2.3 hcatalog api

1.3 权限模型

1.3.1 Storage Based Authorization in the Metastore Server

1.3.2 SQL Standards Based Authorization in HiveServer2

1.3.3 Default Hive Authorization (Legacy Mode)

1.4 hive的超级用户

二、授权管理

2.1 管理命令

2.1.1 角色

2.1.1.1 创建角色

2.1.1.2 删除角色

2.1.1.3 设置角色

2.1.1.4 查看当前具有的角色

2.1.1.5 查看所有存在的角色

2.1.2 用户

2.1.2.1 用户进入admin角色权限

2.1.2.2 查看某用户的所有角色

2.1.2.3 给角色添加用户

2.1.3 用户授权

2.1.3.1 基于数据库

2.1.3.2 基于某张表

2.1.4 组授权

2.1.4.1 基于数据库

2.1.4.2 基于某张表

2.1.5 角色授权

2.1.5.1 基于数据库

2.1.5.2 基于某个表

2.1.6 用户移出权限

2.1.6.1 基于数据库

2.1.6.2 基于某个表

2.1.7 查看用户权限

2.1.7.1 查看某用户在某数据库的权限

2.1.7.2 查看某用户在某表的权限

2.2 权限表

2.2.1 HIVE支持的权限

2.2.2 权限和操作对应关系

2.3 权限分配图

2.4 hive开启权限管理

2.4.1 设置开启hiveserver2权限管理

2.4.2 开启hive权限管理

2.4.3 验证权限


一、Hive权限简介

1.1 hive中的用户与组

hive权限中有用户、组、角色的概念。

1.1.1 用户

即操作系统中的用户,或者在hiveserver2中定义的用户。

1.1.2 组

即操作系统中的组。(组是相对默认授权方式来说的)

1.1.3 角色

是一组权限的集合,参考关系型数据库。
hive内置public角色。public,所有用户都拥有的角色。

1.2 使用场景

目前主要通过以下三种方式使用hive:

hive cli、hiveserver2、hcatalog api

1.2.1 hive cli

hive cli中的用户是操作系统中存在的用户。使用hive cli,只会验证用户的hdfs目录权限。

1.2.2 hiveserver2

hiveserver2中的用户即可以是操作系统中的用户,也可以是hiveserver2中定义的用户。
hiveserver2默认开启用户代理,即用启动hiveserver2的用户来模拟实际用户来提交任务,这时的权限是实际提交的用户的。如果关闭代理,则以启动hiveserver2的用户的权限来执行。

1.2.3 hcatalog api

通过hcatalog api访问hive的用户只会检查用户hdfs上的目录权限。

1.3 权限模型

1.3.1 Storage Based Authorization in the Metastore Server

基于存储权限验证metastore服务:默认情况下hive像dbms一样管理权限,但是有时候为用户授权后用户却没有hdfs权限。因此,当前hive元数据授权的方式是结合dbms权限管理和底层的存储权限管理。当用hive给用户授权时,会先检查用户是hdfs的对应目录是否有相应权限,如果有再执行授权,如果没有则反错。可以对Metastore中的元数据进行保护,但是该种权限模式没有提供更加细粒度的访问控制(例如:列级别、行级别)。

比如给用户授权查询test.t1表时,如果用户在hdfs上没有访问hdfs://user/hive/warehouse/test/t1目录权限则会直接报错。默认是不开启的。

1.3.2 SQL Standards Based Authorization in HiveServer2

基于sql的hiveserver2的权限验证。基于存储的权限验证方式只能验证用户是否有访问目录或文件的权限,但无法执行如列访问之类更精细的控制,因此要用基于sql的权限控制方式。hiveserver2提供了一套完全类似sql的权限验证,可以设置role、用户,可以执行表级、行级、列级授权。

注意:hive cli是不支持sql验证方式的。因为用户可以在cli中改变验证规则甚至禁用该规则。

特点

1)dfs add delete compile reset会被禁止
2)set 命令被限制,只能用来设置少量安全的参数。hive.security.authorization.sqlstd.confwhitelist 参数可设置set可以设置哪些参数。
3)add/drop function以及宏只能被admin角色使用的
4)只能有admin角色来创建永久性函数,其它用户都可以使用
5)admin角色必须使用set role=admin来启动角色

用户和角色

非常类似关系型数据库,用户可以被授予角色。角色是一组权限的集合。
内置了public和admin两个角色,每个用户都有public角色,可以执行基本操作。admin为管理角色。用户登录hiveserver2时执行 show current roles;来查看当前角色。使用set role切换角色。
admin角色用户可以创建其它角色。做admin角色前,做set role切换到admin角色。
role name不分大小写,但是用户名分大小写。

1.3.3 Default Hive Authorization (Legacy Mode)

类似于dbms的授权方式,但是人人都可以执行Grant,当然也可以实现超级用户类来管理hive.开启权限验证后,不配置上面的两个默认就是用这个。

设计目的仅仅只是为了防止用户产生误操作,而不是防止恶意用户访问未经授权的数据。

1.4 hive的超级用户

默认hive是不启用权限验证的,只要使用hive的用户在hdfs上权限即可。默认存在超级用户,用户可以通过自定义类来实现超级用户。使用超级启用必须开始权限验证。

二、授权管理

2.1 管理命令

2.1.1 角色

2.1.1.1 创建角色
CREATE ROLE role_name;
2.1.1.2 删除角色
DROP ROLE role_name;
2.1.1.3 设置角色
SET ROLE (role_name|ALL|NONE);
2.1.1.4 查看当前具有的角色
SHOW CURRENT ROLES;
2.1.1.5 查看所有存在的角色
SHOW ROLES;

2.1.2 用户

2.1.2.1 用户进入admin角色权限
set hive.users.in.admin.role;
set role admin;
2.1.2.2 查看某用户的所有角色
show role grant user user_name
2.1.2.3 给角色添加用户
grant role role_name to user user_name;

2.1.3 用户授权

2.1.3.1 基于数据库
grant select on database default to useradmin;
2.1.3.2 基于某张表
grant select on table test_table to user admin;

2.1.4 组授权

2.1.4.1 基于数据库
grant select on database default to  group  admin;
2.1.4.2 基于某张表
grant select on table ppdata  to  group  admin;

2.1.5 角色授权

2.1.5.1 基于数据库
grant select on database default to  role  admin;
2.1.5.2 基于某个表
grant select on table ppdata to role  admin;

2.1.6 用户移出权限

2.1.6.1 基于数据库
revoke select on database default from useruserB;
2.1.6.2 基于某个表
revoke select on table ppdata from useruserB;

2.1.7 查看用户权限

2.1.7.1 查看某用户在某数据库的权限
show grant role role_name on database database_name;
2.1.7.2 查看某用户在某表的权限
show grant role role_name on [table] table_name;

2.2 权限表

2.2.1 HIVE支持的权限

权限名称 含义
ALL 所有权限
ALTER 允许修改元数据(modify metadata data of object)---表信息数据
UPDATE 允许修改物理数据(modify physical data of object)---实际数据
CREATE 允许进行Create操作
DROP 允许进行DROP操作
INDEX 允许建索引(目前还没有实现)
LOCK 当出现并发的使用允许用户进行LOCK和UNLOCK操作
SELECT 允许用户进行SELECT操作
SHOW_DATABASE 允许用户查看可用的数据库

2.2.2 权限和操作对应关系

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

2.3 权限分配图

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

2.4 hive开启权限管理

2.4.1 设置开启hiveserver2权限管理

#在hiveserver2-site.xml中加入如下配置
<property>
  <name>hive.security.authorization.enabled</name>
  <value>true</value>
</property>
<property>
  <name>hive.server2.enable.doAs</name>
  <value>false</value>
</property>
<property>
  <name>hive.users.in.admin.role</name>
  <value>root</value>
</property>
<property>
  <name>hive.security.authorization.manager</name>  <value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory</value>
</property>
<property>
  <name>hive.security.authenticator.manager</name>
  <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>

2.4.2 开启hive权限管理

#在hive-site.xml中加入如下配置
<property>
  <name>hive.security.authorization.enabled</name>
  <value>true</value>
</property>
<property>
  <name>hive.server2.enable.doAs</name>
  <value>false</value>
</property>
<property>
  <name>hive.users.in.admin.role</name>
  <value>root</value>
</property>
<property>
  <name>hive.security.authorization.manager</name>  <value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory</value>
</property>
<property>
  <name>hive.security.authenticator.manager</name>
  <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>

2.4.3 验证权限

我们不使用账号密码登录hiveserver2,或者使用普通角色用户登录hiveserver2,我们查看下psn4表的数据

执行:select * from psn4;

执行结果:

hive 权限管理,大数据,# Hive,# hadoop,hive,hadoop,数据仓库,大数据

我们发现,权限管理生效的,不是自己创建的表,没有权限查看。

好了,今天Hive权限管理的相关内容就分享到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!文章来源地址https://www.toymoban.com/news/detail-751389.html

到了这里,关于Hive 的权限管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ranger,hive,hdfs的三者的权限管理

    用户在hdfs上的权限 可以看出只给了用户write权限,尝试登录xwq用户,在datagrip上登录成功 经过实验验证:要想使用datagrip或者hive-cli登录hive,需要保证hdfs的权限在/目录至少要有write权限 write权限可以创建文件夹 execute是执行的命令,在只有write权限时是无法执行成功 所以可以

    2024年02月11日
    浏览(38)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(40)
  • hive数据仓库工具

    1、hive是一套操作数据仓库的应用工具,通过这个工具可实现mapreduce的功能 2、hive的语言是hql[hive query language] 3、官网hive.apache.org 下载hive软件包地址  Welcome! - The Apache Software Foundation https://archive.apache.org/ 4、hive在管理数据时分为元数据和真数据,其中元数据要保存在数据库中

    2024年02月04日
    浏览(34)
  • Hive数据仓库

    数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面相分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。 数据仓库本身并不“产生”任何数据,其数据来源不同外部系统; 同时数据仓库

    2024年02月15日
    浏览(39)
  • Hive数据仓库简介

    Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日

    2024年02月15日
    浏览(55)
  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(46)
  • hive数据仓库课后答案

    一、 填空题 1.数据仓库的目的是构建面向     分析         的集成化数据环境。 2.Hive是基于     Hadoop         的一个数据仓库工具。 3.数据仓库分为3层,即      源数据层        、     数据应用层        和数据仓库层。 4.数据仓库层可以细分为      明细层

    2023年04月08日
    浏览(46)
  • 【Hive】——数据仓库

    数据仓库(data warehouse):是一个用于存储,分析,报告的数据系统 目的:是构建面向分析的集成化数据环境,分析结果为企业提供决策支持 特点: 数据仓库本身不产生任何数据,其数据来源于不同外部系统 数据仓库也不需要消费任何的书,其结果开放给各个外部应用使用

    2024年02月04日
    浏览(39)
  • Hive 数据仓库介绍

    目录 ​编辑 一、Hive 概述 1.1 Hive产生的原因 1.2 Hive是什么? 1.3 Hive 特点 1.4 Hive生态链关系 二、Hive架构 2.1 架构图 2.2 架构组件说明 2.2.1 Interface 2.2.1.1 CLI 2.2.1.2 JDBC/ODBC 2.2.1.3 WebUI 2.2.2 MetaData 2.2.3 MetaStore 2.2.4 Hiveserver2 2.2.5 Driver 2.2.5.1 解释器 2.2.5.2 编译器 2.2.5.3 优化器 2.2.5.4 执行

    2024年02月07日
    浏览(40)
  • 安装hive数据仓库

    需要安装部署完成的Hadoop的环境如果不会搭建的可以参考: 卸载Centos7自带的mariadb mariadb-libs-5.5.64-1.el7.x86_64是使用 rpm -qa|grep mariadb 查询出来的名称 安装mysql 安装mysql时可能会出现的问题 1、依赖检测失败 问题很明显了就是依赖的问题,下载他说的依赖就好了 安装hive 上传并且

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包