Hive:权限管理

  • Storage Based Authorization in the Metastore Server
    • 基于存储的授权,可以对 Metastore 中的元数据进行保护,但是没有提供更加细粒度的访问控制(如:列级别、行级别)
  • SQL Standards Based Authorization in HiveServer2
    • 基于 SQL 标准的 Hive 授权,完全兼容 SQL 的授权模型,推荐使用该模式
  • Default Hive Authorization(Legacy Mode)
    • ​​​​​​​Hive 默认授权,设计目的仅只是为了防止用户产生误操作,而不是防止恶意用户访问未经授权的数据

  • Authorization in HiveServer2
    • 限制
      • 启用后:dfs、add、delete、compile、and reset 等命令被禁用
      • 通过 set 命令设置 hive configuration 的方式被限制某些用户使用
        • 通过修改配置文件  hive-site.xml
          • hive.security.authorization.sqlstd.confwhitelist 进行配置
      • 添加、删除函数以及宏的操作,仅为具有 admin 的用户开放
      • 用户自定义函数(开放支持永久的自定义函数),可通过具有 admin 角色的用户创建,其他用户都可使用
      • Transform 功能被禁用
    • 概念
      • 完全兼容 SQL 的授权模型
      • 除支持对于用户的授权认证,还支持角色 role 的授权认证
        • role 可理解为是一组权限的集合,通过 role 为用户授权
        • 一个用户可以具有一个或多个角色
        • 默认包含另种角色:public、admin

hive-site.xml 的配置

<!-- Mysql 配置 -->
<property>
 	<name>hive.metastore.warehouse.dir</name>
   	<value>/var/hive/hive_remote/warehouse</value>
</property>
<property>
   	<name>javax.jdo.option.ConnectionURL</name>
   	<value>jdbc:mysql://one:3306/hive_remote?createDatabaseIfNotExist=true</value>
</property>
<property>
   	<name>javax.jdo.option.ConnectionDriverName</name>
   	<value>com.mysql.jdbc.Driver</value>
</property>
<property>
   	<name>javax.jdo.option.ConnectionUserName</name>
   	<value>root</value>
</property>
<property>
   	<name>javax.jdo.option.ConnectionPassword</name>
   	<value>123456</value>
</property>

<!-- 启动授权功能 -->
<property>
   	<name>hive.security.authorization.enabled</name>
   	<value>true</value>
</property>
<!-- 是否禁用规则 -->    	
<property>
   	<name>hive.server2.enable.doAs</name>
   	<value>false</value>
</property>
<!-- 谁是admin角色,多个用逗号 -->  
<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>

配置后进入 hive 时需要注意用户名,由于是匿名进入,所以无法查询

应该加上用户名(密码无所谓,随便输入)


添加权限角色

为新的角色分配权限(默认是空的)

角色授权分配

首先确定当前是 admin 才能进行分配,给 test 角色分配 admin 的权限

带有 with admin option 时,意味着 test 具有 admin 权限,并且有给其它角色分配的权限,

不带,只具有 admin 权限(对表)

test 的限权是否生效,需要以 test 用户重新进入

 

删除角色

删除角色授权


将某个表的权限分配给指定用户(select、update、delete、insert、all)

  • 指定某个表的查询功能分配给指定用户(其它操作就无权访问)
  • 具有 with grant option 权限的用户,也可以为其它用户进行表权限分配
  • 不能给其它用户分配自身没有的权限
    • abc 只有查询功能,给其它用户也可分配查询功能,其它功能无法分配

使用有权用户进行分配

被分配的用户进行操作

 查询指定用户在指定表上具有哪些限制

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

家道消乏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值