专栏首页Hadoop实操如何在Kudu1.5中使用Sentry授权

如何在Kudu1.5中使用Sentry授权

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


Fayson在之前的文章详细介绍了CDH5.13的新功能,参考《CDH5.13和CM5.13的新功能》。CDH5.13中默认打包了Kudu,我们在安装Kudu的时候再也不用单独下载Kudu的Parcel包,与其他组件一样直接增加服务即可。另外这个版本Kudu1.5支持Sentry的database,table以及column的SELECT/INSERT授权,旧的版本只能支持数据库或表的全部授权,不能区分SELECT和INSERT,且不支持列授权。

本文主要介绍如何在Kudu1.5中使用Sentry授权。为了方便读者进行对比查看,Fayson会先基于Kudu旧版本(CDH5.11.2+Kudu1.3)进行Sentry授权测试,后面才会基于CDH5.13新版进行测试。

  • 内容概述

1.CDH5.11.2测试Kudu1.3的Sentry授权

2.CDH5.13测试Kudu1.5的Sentry授权

  • 测试环境

1.CDH5.11.2和CDH5.13集群

2.采用root用户操作

3.集群未启用Kerberos,该项不影响整个测试效果,Fayson只是为了操作方便。

  • 前置条件

1.CDH5.11.2和CDH5.13两个集群运行正常

2.两个集群Kudu已经安装,且已集成Impala,操作正常

3.两个集群都已启用Sentry并且配置正确

2.CDH5.11.2测试Kudu1.3的Sentry授权


CDH5.11.2安装Kudu需要单独下载Kudu的Parcel包,参考Fayson之前的文章《如何在CDH中安装Kudu&Spark2&Kafka》,如何在CDH中启用Sentry请参考《如何在CDH未启用认证的情况下安装及使用Sentry》,《如何在CDH启用Kerberos的情况下安装及使用Sentry(一)》,《如何在CDH启用Kerberos的情况下安装及使用Sentry(二)》和《如何在Hue中使用Sentry》。

以下测试过程基于CDH5.11.2集群已经完全就绪,Kudu,Impala和Sentry服务都运行正常,如何安装以及配置Fayson不再赘述。

1.创建admin管理员role,给该role赋予所有权限,并将hive组加入到该role。

2.首先在default下创建一张Kudu表my_first_table,并测试功能正常。

CREATE TABLE my_first_table
(
  id BIGINT,
  name STRING,
  PRIMARY KEY(id)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU;

INSERT INTO my_first_table VALUES (99, "sarah");

INSERT INTO my_first_table VALUES (1, "john"), (2, "jane"), (3, "jim");

select * from my_first_table;

delete from my_first_table where id =99;

select * from my_first_table;

3.使用fayson用户登录Impala没有任何权限。

4.使用hive用户登录Impala,创建fayson_role的角色,赋予该角色my_first_table的ALL权限,并将fayson组加入到该角色。

create role fayson_role;
grant role fayson_role to group fayson;
grant all on table my_first_table to role fayson_role;

再次使用fayson用户登录Impala,并查询。

sudo -u fayson impala-shell -i 172.31.28.12
select * from my_first_table;

发现已经赋权成功,fayson用户可以查询该表。

5.使用hive用户登录Impala,先drop掉fayson_role的角色,然后再次创建。然后分别赋予my_first_table表的INSERT权限,以及my_first_table表的列id的SELECT权限进行测试

drop role fayson_role;
create role fayson_role;
grant role fayson_role to group fayson;
grant insert on table my_first_table to role fayson_role;
grant select(id) on table my_first_table to role fayson_role;

赋权失败,提示Kudu表只支持ALL权限。

3.CDH5.13测试Kudu1.5的Sentry授权


CDH5.13安装Kudu不需要额外下载Parcel包,直接安装即可。可以参考Fayson之前的文章《CDH安装前置准备》和《CentOS6.5安装CDH5.13

1.登录到CDH5.13集群,确定版本。

2.创建admin管理员role,给该role赋予所有权限,并将hive组加入到该role。首先在default下创建一张Kudu表my_first_table,并测试功能正常。该两个步骤与第二章相似,Fayson不再赘述。

3.使用fayson用户登录Impala没有任何权限。

4.使用hive用户登录Impala,创建fayson_role的角色,赋予该角色my_first_table的ALL权限,并将fayson组加入到该角色。

create role fayson_role;
grant role fayson_role to group fayson;
grant all on table my_first_table to role fayson_role;

再次使用fayson用户登录Impala,并查询。

sudo -u fayson impala-shell -i 172.31.28.12
select * from my_first_table;

发现已经赋权成功,fayson用户可以查询该表。

5.使用hive用户登录Impala,先drop掉fayson_role的角色,然后再次创建。然后赋予my_first_table表的SELECT权限。

drop role fayson_role;
create role fayson_role;
grant role fayson_role to group fayson;
grant select on table my_first_table to role fayson_role;

使用fayson用户进行测试

select * from my_first_table;
INSERT INTO my_first_table VALUES (990, "sarah");

可以看到fayson用户可以执行select,但是不能执行insert。

6.使用hive用户登录Impala,先drop掉fayson_role的角色,然后再次创建。然后赋予my_first_table表的列id的SELECT权限。

drop role fayson_role;
create role fayson_role;
grant role fayson_role to group fayson;
grant select(id) on table my_first_table to role fayson_role;

使用fayson用户登录进行测试

select * from my_first_table;
select id from my_first_table;

可以看到fayson用户无法select全表,只能select单个id字段。说明Kudu表的column授权生效。

4.总结


1.CDH5.13,Kudu1.5之前的旧版Kudu,Sentry授权只能支持数据库或表的ALL权限,不能区分SELECT和INSERT权限,且不支持列授权。

2.CDH5.13,Kudu1.5版本中,Sentry授权支持数据库,表,字段的ALL,SELECT,INSERT权限。

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【倒计时7天】2018教育部-腾讯公司产学合作协同育人项目申请即将截止!

    腾讯高校合作
  • 中国互联网协会发布:《2018中国互联网发展报告》

    在2018中国互联网大会闭幕论坛上,中国互联网协会正式发布《中国互联网发展报告2018》(以下简称《报告》)。《中国互联网发展报告》是由中国互联网协会与中国互联...

    钱塘数据
  • 考研英语-1-导学

    英二图表作文要重视。总体而言,英语一会比英语二难点。不过就写作而言,英语二会比英语一有难度,毕竟图表作文并不好写。

    用户1335799
  • SQL中GROUP BY用法示例

    GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类...

    Awesome_Tang
  • 【系统设置】CentOS 修改机器名

    ken.io
  • ISUX Xcube智能一键生成H5

    腾讯ISUX
  • 复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

    从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

    haifeiWu
  • 不只是软件,在线也可以免费下载百度文库了。

    不管是学生,还是职场员工,下载各种文档几乎是不可避免的,各种XXX.docx,XXX.pptx更是家常便饭,人们最常用的就是百度文库,豆丁文库,道客巴巴这些下载...

    课代表
  • 知识体系解决迷茫的你

    最近在星球里群里都有小伙伴说道自己对未来的路比较迷茫,一旦闲下来就不知道自己改干啥,今天我这篇文章就是让你觉得一天给你 25 个小时你都不够用,觉得睡觉都是浪费...

    桃翁
  • 理工男图解零维到十维空间,烧脑已过度,受不了啦!

    让我们从一个点开始,和我们几何意义上的点一样,它没有大小、没有维度。它只是被想象出来的、作为标志一个位置的点。它什么也没有,空间、时间通通不存在,这就是零维度。

    钱塘数据

扫码关注云+社区

领取腾讯云代金券