(本文档仅供参考)

 问题

          1.用户属性 ,使用客户自定义权限表,配合系统函数CurrentUserAllDepartmentIDRecursively使用,自定义权限表中增加一条记录,该位置能查询出正确的数据.
          
           
          2.将用户属性放在原生sql查询中,用来控制权限,测试核实该位置的用户属性并没有按照显示出用户属性正确的数据,仍是之前的,原生sql查询已禁用缓存。
            
            但是发现,手工清除系统缓存后,原生sql查询能正确查出数据。
         

 

解决方案

            目前产品的数据集使用【用户属性】并不适用于用户数据实时变化的场景,详情如下:

            当数据集启用了‘禁用缓存’,它的效果是针对【数据】层面的及时更新而言,但是并没有更新执行SQL,需要【清空缓存】之后,用户属性功能便会更新执行SQL去获取数据。
             对于公共设置下【用户属性】预览数据入口,这时候是不走缓存,直接拿最新的SQL去数据库去取数的。

 

             综上,如果需要在数据集中实时获取最新的用户数据,建议不要引用用户属性,而是考虑作为子查询去实现例如下图所示: