INFO-权限问题排查示例
更新时间: 2025-03-08 23:23:07
阅读 2626
INFO-权限问题排查示例
适用模块
离线开发、自助分析、安全中心、ranger具体说明
中台任务报库表、目录、功能权限,排查流程使用示例
场景一、库表权限
其余 select drop等类似。该类报错为表没有相应的增删改查权限。
第一种情况: 当没有表的权限的时候,首先确认下自己有没有申请权限,如果没有申请。在安全中心权限申请走一下工单申请。如下图

如果已经走过工单申请了,联系该项目管理员在安全中心数据权限中找一下这张表。看下有无自己的权限。

如果此处有对应权限,但任务报错没权限,可上ranger上检查



如下图Roles是角色1和2分别代表管理员和负责人,Users有单独的具体给到个人的授权

点进去查看确认详情

场景二、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);
场景三、目录权限

当没有目录权限时候,首先不能参考报错中的目录。因为报错中的目录包含的比较大,不是实际的表目录。要先确认表的目录有没有权限。
首先执行 show create table 库.表名 查看表的location信息。

然后使用管理员在安全中心目录权限找到这个路径,看看用户实际有没有这个权限。正常情况开通表权限会双写这个目录的权限。

如果核实没问题,还有一种情况是分区在别的目录。这个时候要查看分区的location 首先
show partitions 库.表名
查看分区信息后执行
describe formatted 库.表 partition(xx=xxx,xx=xxx..);

查看location 确认目录权限。



场景四、功能权限
子产品没权限,或者操作无权限等,遵循一个原则,该功能属于那个子产品,然后根据下面的示例去定位授权位置

固定角色权限如下:

功能权限设置分两部分:项目中心与安全中心,分别如下
项目中心:队列授权、功能权限:任务操作权限,数据管理操作、项目中心模块访问权限


安全中心-功能权限:离线传输权限,新版已迁移到安全中心-角色管理-项目级

安全中心-角色权限:通过角色或者成员任何一处授权均可
项目组级权限

项目级权限

作者:林帅
文档反馈
以上内容对您是否有帮助?