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


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


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


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;


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


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


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


0493-如何在Sentry中使用WITH GRANT OPTION命令_用户登录_03


4.将testrolea角色授权给testa组


GRANT ROLE testrolea TO GROUP testa;


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


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


GRANT ROLE testroleb TO GROUP testb;


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


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


3

GRANT用户授权给其他角色


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


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


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


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


0493-如何在Sentry中使用WITH GRANT OPTION命令_用户登录_07


4

userc用户登录验证


1.使用userc用户登录Hive


0493-如何在Sentry中使用WITH GRANT OPTION命令_用户登录_08


2.查看userc所能访问的表


0493-如何在Sentry中使用WITH GRANT OPTION命令_用户登录_09


3.查看ods_user表数据


0493-如何在Sentry中使用WITH GRANT OPTION命令_用户登录_10


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


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


无法选择testroleb角色组


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


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


5

总结


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

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

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



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


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

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


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

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