自定义 function ,当 doris 重启以后,发现 部分用户没有访问自定义 function 的权限

Viewed 32

现状:
目前有一个用户
redash
被 admin 授权了,部分表,只读权限

GRANT Select_priv ON internal.ph_risk.analyze_report_loan TO ROLE 'bi_ph_role';

redash 拥有角色 bi_ph_role

然后, admin 添加一个全局 function
CREATE GLOBAL ALIAS FUNCTION data_masking(TEXT) WITH PARAMETER(data_param) AS concat('****', substring(data_param, -4));

然后 redash 可以访问 function
select data_masking('12');

某一次, 由于某些原因 需要重启 doris

发现 redash 访问 data_masking 出错
ERROR 1227 (42000): errCode = 2, detailMessage = Access denied; you need (at least one of) the (SELECT) privilege(s) for this operation

目前的解决办法:
每一次重启 doris 都需要
DROP GLOBAL FUNCTION data_masking(TEXT);
CREATE GLOBAL ALIAS FUNCTION data_masking(TEXT) WITH PARAMETER(data_param) AS concat('****', substring(data_param, -4));

重新创建 function 才能正常
请问是什么原因,应该怎么解决这个问题

1 Answers

但是我给 redash 用户,授权库级别的权限,这个问题,就不存在了。每次重启,都可以正常访问了
GRANT Select_priv ON internal.ph_risk.* TO ROLE 'bi_ph_role';