数据权限应用到自定义SQL详解
更新时间: 2024-12-19 16:28:15
阅读 86
数据权限应用到自定义SQL详解
1.升级到8.25后,项目中心——功能配置中,数据权限应用到自定义SQL功能的作用是什么?
举个例子,下面是一个SQL示例:
with hk as(
select *
from 1h a
where 1=1
)
SELECT t.*
FROM hk t
left join (select * from dev.dev_write)
where 1=1
and (a0.owner_workcode is not null or a1.owner_workcode is not null )
该SQL中用with 将一个select子查询自己命名为了一个 hk表名,并在下面使用中直接使用hk表名来代替这个子查询。如果开启了数据权限应用到自定义SQL功能,同时该用户受到了数据权限行权限或者列权限的控制的话,有数在下发SQL时,会一块下发查询hk这个表的元信息,但是因为hk是虚构的一张表,所以会报错一个 数据库中的表或视图不存在
2.问题解决办法
如果有用户反馈模型在升级前是正常有数据的,升级到8.25后没做过什么操作报错表或视图不存在的话,并且用admin账号查看没有问题的话,记得检查下项目中心该配置是否是开启的,有一个前置条件就是该用户受到数据权限行权限或者列权限的控制
第二个办法就是把with子查询别命名的那个直接引用到下面,不在用with别命名,sql示例如下:
SELECT t.*
FROM (
select *
from 1h a
where 1=1
) t
left join (select * from dev.dev_write)
where 1=1
and (a0.owner_workcode is not null or a1.owner_workcode is not null )
文档反馈
以上内容对您是否有帮助?