apache http可以访问https没权限_Hive权限管理:基于存储授权

Hive的默认权限模式

Hive的默认授权模式支持基于用户、组和角色的传统RDBMS风格的授权,并授予他们在数据库或表上执行操作的权限,详细描述在hive授权(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization)和hive废弃的权限模式。

这种RDBMS类型的授权不太适合Hadoop中的典型用例,因为在实现方面存在以下差异:

  1. 与传统的RDBMS不同,Hive不能完全控制它下面的所有数据。数据存储在多个文件中,文件系统具有独立的授权系统
  2. 与传统的RDBMS不允许其他程序直接访问数据不同的是,人们倾向于使用其他应用程序直接读取或写入与Hive一起使用的文件或目录

这就产生了这样的问题场景:

  1. 您向用户授予权限,但是用户不能访问数据库或文件系统,因为他们没有文件系统权限
  2. 您删除了用户的权限,但是用户仍然可以通过文件系统直接访问数据,因为他们具有文件系统权限

Hive社区意识到可能不存在一个万能的授权模型,因此它支持可插入的其他授权模型。在HCatalog包中,我们介绍了一个授权接口的实现,该接口使用底层文件系统(通常是存储后端)的权限作为每个数据库、表或分区的权限的基础

在Hive中,当文件系统用于存储时,有一个对应于数据库或表的目录。使用这种授权模型,用户或组对该目录的读/写权限决定了用户对数据库或表的权限。在HBase等其他存储系统中,对系统中等效实体的授权将使用系统的授权机制来确定Hive中的权限。

例如,alter table操作将在允许操作之前检查用户是否对表目录具有权限,即使它可能不会更改文件系统上的任何内容

用户需要对存储系统上对应的实体进行写访问,以执行任何类型的操作,从而修改数据库或表的状态。用户需要读访问权限才能对数据库或表执行任何非修改操作

当数据库或表被具有Unix/ posix权限模型(如HDFS)的文件系统所支持时,您可以为所有者用户、组和' other '设置读(r)和写(w)权限

例如,在http://hadoop.apache.org/docs/rx.x.x/hdfs_permissions_guide.html上给出了HDFS权限的详细信息

HDFS权限管理1.0.4版本http://hadoop.apache.org/docs/r1.0.4/hdfs_permissions_guide.html

HDFS权限管理1.2.1版本http://hadoop.apache.org/docs/r1.2.1/hdfs_permissions_guide.html

注意:对HDFS ACL(在Apache Hadoop 2.4中引入)的支持在已发布的Hive版本中是不可用的。这意味着,它只检查传统rwx样式的权限,以确定用户是否可以写入文件系统。对ACL的支持在Hive trunk Hive -7583中可用,在Hive 0.14中也可用

注意:如果hive.warehouse.subdir.inherit.perms启用后,将通过以下权限继承规则设置hive创建的文件和目录的权限和ACL。

用于确定用户是否对目录或文件具有权限的文件系统逻辑将被Hive使用

下表显示了此授权模型下的Hive操作所需的最小权限:

8f52843f2145fc090fd4addce32a8d33.png

警告:目前Hive的这种授权模式并不能阻止恶意用户做坏事

权限未使用的DDL:

管理Hive默认授权模型的权限的DDL语句对基于存储的模型中的权限没有任何影响

配置基于存储系统的授权

基于文件系统的授权模型的实现可以通过一个名为StorageBasedAuthorizationProvider的授权提供程序来实现,该授权提供程序是Hive的一部分。(在0.10.0版本的Hive包中添加了对这个的支持—参见hive-3705和Metastore服务器中的基于存储的授权。)

需要将以下条目添加到hive-site.xml以启用授权

 hive.security.authorization.enabledtrueenable or disable the hive client authorizationhive.security.authorization.managerorg.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProviderthe hive client authorization manager class name.    The user defined authorization class should implement interface    org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值