作者:唐辉
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;
该用户可以查看当前用户的所有角色,却不能查看所有的,起初认为是该角色权限不够,于是登录hive用户,查看hive 用户具有哪些角色,然后全部赋予test_sjz用户组
show current roles;
grant role admin_role to group test_sjz;
grant role hive_role to group test_sjz;
然后再切换到test_sjz 用户再次尝试,发现即使赋予admin_role 也不能正常查看show roles;
3
解决办法
那么怎么才能让其他的用户也能正常执行show roles 命令?我们知道show roles 命令是查看全部的roles ,肯定是跟用户的权限有关,去cloudera 官网查看资料找到如下图所示资料,也就是说只能sentry 管理员用户才能执行show roles查看;
那么解决思路有两种:
1.一是将test_sjz 用户添加到hive 组他这样这个用户也能查看。
2.将test_sjz 用户组设置为sentry 管理员用户组,下面主要介绍第二种方式
在CM > Sentry > 配置>搜索admin 添加该用户组到管理员组并保存重启sentry 服务生效
为避免其他用户角色影响,我们登录hive用户并收回test_sjz 用户组的admin_role;
revoke role admin_role from group test_sjz;
revoke role hive_role from group test_sjz;
然后再次登录test_sjz 用户查看
此时test_sjz 用户可以正常执行show roles;
参考:
https://www.cloudera.com/documentation/enterprise/5/latest/topics/sg_hive_sql.html#concept_c2q_4qx_p4