我需要在impala中实现基于用户id的行级安全性。我现在采用的方法是,我有一个用户到角色的Map,并使用该Map形成一个主查询,如下所示:
create view dervied_view as
select *, 1 as roleid from src_table where a = 1 and b = 2
union
select *, 2 as roleid from src_table where a = 1 and b = 3
...
...
然后,进行另一个查询,如下所示:
create view well_known_named_view as
select * from derived_view where roleid in
(select roleid from role_mapping table where userid = effective_user());
这样,每当用户登录时,他只需要查询众所周知的视图,而不需要根据每个用户/角色创建视图。问题是这个查询在hue中超时(这是它最常被使用的地方),并且在shell中执行一个基本查询至少需要10分钟。有没有更好的办法让这个工作?
暂无答案!
目前还没有任何答案,快来回答吧!