0
点赞
收藏
分享

微信扫一扫

0568-普通用户在Sentry中使用show roles 命令查看失败异常分析

作者:唐辉


1

文档编写目的


Sentry的介绍和使用Fayson前面的文章了介绍了很多,本篇文章主要介绍集群启用Sentry后普通用户用户执行show roles 命令无法正常查看的分析以及解决办法。


  • 内容概述

1.问题描述

2.解决办法

3.参考文档


  • 测试环境

1.CM和CDH版本为5.15.1

2.操作系统版本为RedHat7.2

3.已启用Kerberos

4.已启用Sentry


2

问题描述


登录一个普通用户去使用show roles 命令会出现如下异常:


show roles;
show current roles;


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_hive


该用户可以查看当前用户的所有角色,却不能查看所有的,起初认为是该角色权限不够,于是登录hive用户,查看hive 用户具有哪些角色,然后全部赋予test_sjz用户组


show current roles;
grant role admin_role to group test_sjz;
grant role hive_role to group test_sjz;


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_用户组_02


然后再切换到test_sjz 用户再次尝试,发现即使赋予admin_role 也不能正常查看show roles;


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_普通用户_03


3

解决办法


那么怎么才能让其他的用户也能正常执行show roles 命令?我们知道show roles 命令是查看全部的roles ,肯定是跟用户的权限有关,去cloudera 官网查看资料找到如下图所示资料,也就是说只能sentry 管理员用户才能执行show roles查看; 


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_用户组_04


那么解决思路有两种:

1.一是将test_sjz 用户添加到hive 组他这样这个用户也能查看。


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_普通用户_05


2.将test_sjz 用户组设置为sentry 管理员用户组,下面主要介绍第二种方式

CM > Sentry > 配置>搜索admin 添加该用户组到管理员组并保存重启sentry 服务生效


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_用户组_06


为避免其他用户角色影响,我们登录hive用户并收回test_sjz 用户组的admin_role;


revoke role admin_role from group test_sjz;
revoke role hive_role from group test_sjz;


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_普通用户_07


然后再次登录test_sjz 用户查看


0568-普通用户在Sentry中使用show roles 命令查看失败异常分析_普通用户_08


此时test_sjz 用户可以正常执行show roles;


参考:

​​https://www.cloudera.com/documentation/enterprise/5/latest/topics/sg_hive_sql.html#concept_c2q_4qx_p4​​


举报

相关推荐

0 条评论