Hive 权限管理

  • Post author:
  • Post category:其他




官方页面

Hive 三种授权模型:

1、Storage Based Authorization in the Metastore Server :

基于存储的授权





可以对


Metastore


中的元数据进行保护,但是没有提供更加细粒度的访问控制(例如:列级别、行级别)


2、 SQL Standards Based Authorization in HiveServer2 : 基于SQL标准的Hive授权 – 完全兼容SQL的授权模型,推荐使用该模式


3、

Old default Hive Authorization (Legacy Mode) :

hive默认授权





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


重点解说 :

SQL Standards Based Authorization in HiveServer2


完全兼容SQL


的授权模型


除支持对于用户的授权认证,还支持角色


role的授权认证(role


可理解为是一组权限的集合,通过role为用户授权、一个用户可以具有一个或多个角色、默认包含另种角色:


public





admin)


限制:


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


功能被禁用

1、在hive服务端修改配置文件hive-site.xml添加以下配置内容
[root@node03 conf]# vi + 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、重启hive metastore 
[root@node03 conf]# hive --service metastore
2021-06-30 23:26:32: Starting Hive Metastore Server

3、服务端启动hiveserver2;客户端通过beeline进行连接
[root@node03 ~]# hiveserver2 
which: no hbase in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_291-amd64/bin:/opt



版权声明:本文为chooser007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。