INFO-权限问题排查示例

适用模块
离线开发、自助分析、安全中心、ranger
具体说明
中台任务报库表、目录、功能权限,排查流程
使用示例
场景一、库表权限
INFO-权限问题排查示例 - 图1
其余 select drop等类似。该类报错为表没有相应的增删改查权限。
第一种情况: 当没有表的权限的时候,首先确认下自己有没有申请权限,如果没有申请。在安全中心权限申请走一下工单申请。如下图
INFO-权限问题排查示例 - 图2
如果已经走过工单申请了,联系该项目管理员在安全中心数据权限中找一下这张表。看下有无自己的权限。
INFO-权限问题排查示例 - 图3
如果此处有对应权限,但任务报错没权限,可上ranger上检查
INFO-权限问题排查示例 - 图4
INFO-权限问题排查示例 - 图5
INFO-权限问题排查示例 - 图6
如下图Roles是角色1和2分别代表管理员和负责人,Users有单独的具体给到个人的授权
INFO-权限问题排查示例 - 图7
点进去查看确认详情
INFO-权限问题排查示例 - 图8
场景二、default库没权限
当使用 insert into bdms.t2_temp values ('cfe', '2', 74)

insert into t2_temp SELECT 2,'xiaohua','aaa';
向表内插入数据,Hive 会在 default 库下使用tmp表的方式来存储值,从而会引起权限报错。
2022-12-23 15:37:13,727 executeHqlSync method failed org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [bdms_name] does not have [SELECT] privilege on [default/t2_temp/xxx]
解决方法:
1、INSERT INTO bdms.t2_temp SELECT 2,'xiaohua','aaa';
2、如果一定到用 insert into values 方式,请调整写法:
use bdms;
insert into t2_temp values ('asa', '1', 80);
场景三、目录权限
INFO-权限问题排查示例 - 图9
当没有目录权限时候,首先不能参考报错中的目录。因为报错中的目录包含的比较大,不是实际的表目录。要先确认表的目录有没有权限。
首先执行 show create table 库.表名 查看表的location信息。
INFO-权限问题排查示例 - 图10
然后使用管理员在安全中心目录权限找到这个路径,看看用户实际有没有这个权限。正常情况开通表权限会双写这个目录的权限。
INFO-权限问题排查示例 - 图11
如果核实没问题,还有一种情况是分区在别的目录。这个时候要查看分区的location 首先show partitions 库.表名查看分区信息
后执行describe formatted 库.表 partition(xx=xxx,xx=xxx..);
INFO-权限问题排查示例 - 图12
查看location 确认目录权限。
INFO-权限问题排查示例 - 图13
INFO-权限问题排查示例 - 图14
INFO-权限问题排查示例 - 图15
场景四、功能权限
子产品没权限,或者操作无权限等,遵循一个原则,该功能属于那个子产品,然后根据下面的示例去定位授权位置
INFO-权限问题排查示例 - 图16
固定角色权限如下:
INFO-权限问题排查示例 - 图17
功能权限设置分两部分:项目中心与安全中心,分别如下
项目中心:队列授权、功能权限:任务操作权限,数据管理操作、项目中心模块访问权限
INFO-权限问题排查示例 - 图18
INFO-权限问题排查示例 - 图19
安全中心-功能权限:离线传输权限,新版已迁移到安全中心-角色管理-项目级
INFO-权限问题排查示例 - 图20
安全中心-角色权限:通过角色或者成员任何一处授权均可
项目组级权限
INFO-权限问题排查示例 - 图21
项目级权限
INFO-权限问题排查示例 - 图22

作者:林帅