CDH6.2 集成Sentry,Hive,Hue,Impala权限控制

公司最近Hadoop集群和其他服务机器复用严重,提供了新机器,想将Hadoop集群迁出。

Hadoop使用的CDH集成环境,从CDH5.3跨越到CDH6.2

之前在CDH5.3上将hive从0.13升级到1.2.1。然后做了hive权限控制

详情见https://blog.csdn.net/u012422198/article/details/94434445

想在CDH6.2中同样来一套时,发现hive2.1.1中 无法进行全局权限赋予了

grant select to user bigdata;报错提示我不支持object为all

必须每个数据库每张表去做权限控制,那么维护量太多。

然后我就使用Sentry,不开启Kerberos【因为对外只提供Hue访问且一般业务人员不是用权限配置SQL】,启动Sentry测试模式使用。

第一部分:

1.在mysql中配置数据库

create database sentry deault character set utf8;

grant all on sentry.* to 'sentry'@'%' identified by 'sentry';

flush privileges;

2.先在CDH中安装Sentry组件,gateway 选择全部节点。server选择主节点。

安装完成后

3.hive 配置中启用Sentry服务,关闭Hive的用户模拟功能,集群未启用安全认证环境下,需要配置以下参数


    sentry.hive.testing.mode
    true

配置好hive的server


    sentry.hive.server
    server1

4.impala配置中启动sentry

Impala服务范围none-->sentry

5.配置Hue与Sentry集成

Hue服务范围none-->sentry

6.HDFS启用ACLS和Sentry权限同步

7.回到Cloudera Manager主页,部署客户端配置并重启相关服务

第二部分:

1.使用beeline连接HiveServer2,并登录hive用户

beeline

!connect jdbc:hive2://你的主机名:10000

这时会让你输入用户名和密码,这里都输入hive
2.创建admin,impala,bigdata角色

create role admin;

create role impala;

create role bigdata;
3.为角色赋予超级权限

grant all on server server1 to role admin;

grant select on server server1 to role bigdata;

grant select on server server1 to role impala;

grant create on server server1 to role bigdata;
4.将角色授权给各个用户组

grant role admin to group hive; --hive用户组有admin权限

grant role impala to group impala;--impala用户组有查询权限

grant role bigdata to group bigdata;--bigdata用户组有查询和创建权限。

 

这样之后在Hue中新建用户和组bigdata,新建用户和组hive。各自分配好Hue的访问权限,如bigdata可访问impala和hive

hive为管理员权限,这样bigdata登录Hue就不怕误删hive中非bigdata所建的表了;

Hue机器上记得添加新用户bigdata 所属组为bigdata

 

你可能感兴趣的:(Hive)