0493-如何在Sentry中使用WITH GRANT OPTION命令

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

文档编写目的

在使用Sentry进行Hive表的权限管理时,在超级管理员下还划分有不同库和表的管理员用户,这个时候拥有这些库的授权权限的角色就可以将这些库和表授权给其他的角色场景。本篇文章Fayson主要介绍WITH GRANT OPTION的使用。

  • 测试环境

1.RedHat7.2

2.CM和CDH版本为5.15.0

2

环境准备

1.在Fayson的测试环境创建了两个用户usera和userc

usera属于testa组,userc属于testb组。

2.使用hive用户登录Hive创建两个角色testrolea和testroleb

[root@cdh4 ~]# beeline
beeline> !connect jdbc:hive2://cdh2.fayson.com:10000
Enter username for jdbc:hive2://cdh2.fayson.com:10000: hiveadmin
Enter password for jdbc:hive2://cdh2.fayson.com:10000: *******
0: jdbc:hive2://cdh2.fayson.com:10000> create role testrolea;
0: jdbc:hive2://cdh2.fayson.com:10000> create role testroleb;

3.将default.ods_user表的SELECT权限赋予testrolea角色,并授予该角色GRANT权限

GRANT SELECT ON default.ods_user TO ROLE testrolea WITH GRANT OPTION;

4.将testrolea角色授权给testa组

GRANT ROLE testrolea TO GROUP testa;

5.将testroleb角色授权给testb组,此时testroleb角色组没有任何权限

GRANT ROLE testroleb TO GROUP testb;

以上操作均有hive管理员账号完成。

3

GRANT用户授权给其他角色

1.完成上面步骤后,使用usera用户登录Hive

2.使用usera用户将所拥有的default.ods_user表的SELECT权限授权给testroleb角色

GRANT SELECT ON default.ods_user TO ROLE testroleb WITH GRANT OPTION;

4

userc用户登录验证

1.使用userc用户登录Hive

2.查看userc所能访问的表

3.查看ods_user表数据

4.使用usera用户登录Hue进行授权测试

无法选择testroleb角色组

注:这里有个问题,To role中只能选择该用户组所在的角色

5

总结

1.某个角色拥有WITH GRANT OPTION权限的库和表,它可以将这些库和表授权给其他的角色。

2.通过Hue无法正常的将拥有WITH GRANT OPTION权限的库和表授权给其他的角色,目前应该是Hue的一个BUG。

3.只能通过命令行的方式实现WITH GRANT OPTION授权给其他角色。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-12-26

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

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券