我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:ds视讯 > 多用户控制 >

hive多用户权限控制

归档日期:07-20       文本归类:多用户控制      文章编辑:爱尚语录

  当多个不同角色的用户共用hive时,需要对不同的角色做不同的权限控制。权限控制主要指底层的hdfs文件操作控制和hive自身的对表的授权管理。

  解决办法,这个主要是由于hive配置文件中配置的一些临时或存放中间结果的目录权限设置问题,导致当前登陆hive的用户没权限访

  从上可知需要修改对应的hdfs和本地两个目录的权限,修改为666即可,注意路径上的所有父目录路径也要有相应的访问权限。

  到这里,hive基本可以支持多个用户跑起来了。从而可以着手hive用户对底层文件的访问权限,主要通过设置3个参数完成。

  通过以上配置,进入hive的用户就不能随意对底层文件随意操作了,必须具有相应权限。接下来可以进行hive自身类似mysql一样的权限授权管理了。只不过这种权限不完善,只能防止误操作;要做好一点,可以用自定义超级管理员权限缓解这个问题。

  Hive授权的核心就是用户、组、角色。Hive中的角色和平常我们认知的角色是有区别的。Hive中的角色可以理解为一部分有一些相同“属性”的用户或组或角色的集合。这里有个递归的概念,就是一个角色可以是一些角色的集合。

  如上有三个用户分别属于G_db1、G_db2、G_alldb。G_db1、G_db2、G_ bothdb分别表示该组用户可以访问数据库1、数据库2和可以访问1、2两个数据库。现在可以创建role_db1和role_db2,分别并授予访问数据库1和数据库2的权限。这样只要将role_eb 1赋给G_db1(或者该组的所偶用户),将role_eb2赋给G_db2,就可以是实现指定用户访问指定数据库。最后创建role_bothdb指向role_db1、role_db2(role_bothdb不需要指定访问那个数据库),然后role_bothdb授予G_bothdb,则G_bothdb中的用户可以访问两个数据库。

  使用和组使用的是Linux机器上的用户和组,而角色必须自己创建。注意:如果有一个属于组bar的用户foo,他通过cli连接到远程的Server上执行操作,而远程的Server上有一个用户foo属于baz组,则在权限控制中foo是对应的baz组的。

  开启权限控制有Hive的权限功能还有一个需要完善的地方,那就是“超级管理员”。Hive中没有超级管理员,任何用户都可以进行Grant/Revoke操作,为了完善“超级管理员”,必须添加hive.semantic.analyzer.hook配置,并实现自己的权限控制类。

本文链接:http://losmochileros.net/duoyonghukongzhi/470.html