hive 权限知识点整理
Posted cgcong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive 权限知识点整理相关的知识,希望对你有一定的参考价值。
一,hive 权限授权模型
1、Storage Based Authorization in the Metastore Server
基于存储的授权(也就是HDFS的授权模型) - 可以对Metastore中的元数据进行保护,但是没有提供更加细粒度的访问控制(例如:列级别、行级别)。
2、SQL Standards Based Authorization in HiveServer2
(grant)基于SQL标准的Hive授权 - 完全兼容SQL的授权模型,推荐使用该模式。
①完全兼容SQL的授权模型
②除支持对于用户的授权认证,还支持角色role的授权认证
一个用户可以具有一个或多个角色
默认包含两种角色:public、admin
3、Default Hive Authorization (Legacy Mode)
hive默认授权 - 设计目的仅仅只是为了防止用户产生误操作,而不是防止恶意用户访问未经授权的数据。
二,选择HiveServer2模式
启动的时候也是用这种方式:HiveServer2/beeline 客户端方式启动
使用该权限控制模式会有一些限制,如下:
1、启用当前认证方式之后,dfs, add, delete, compile, and reset等命令被禁用。
2、通过set命令设置hive configuration的方式被限制某些用户使用。
(可通过修改配置文件hive-site.xml中hive.security.authorization.sqlstd.confwhitelist进行配置)
3、添加、删除函数以及宏的操作,仅为具有admin的用户开放。
4、用户自定义函数(开放支持永久的自定义函数),可通过具有admin角色的用户创建,其他用户都可以使用。
5、Transform功能被禁用。
————————————————
原文链接:https://blog.csdn.net/qq_36299025/article/details/94143198
三,修改配置
<property> <name>hive.security.authorization.enabled</name> <value>true</value> <description>开启权限配置</description> </property> <property> <name>hive.server2.enable.doAs</name> <value>false</value> <description>默认情况下,HiveServer2以提交查询的用户执行查询访问(true),如果hive.server2.enable.doAs设置为false,查询将以运行hiveserver2进程的用户访问。</description> </property> <property> <name>hive.users.in.admin.role</name> <value>root</value> <description>指定超级管理员是哪个用户</description> </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> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.22.220:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value>
</property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>数据库账号</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>数据库密码</value> </property>
以上是关于hive 权限知识点整理的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security----RBAC权限控制模型,和权限相关知识点整理