fineDB如何将每个用户对应可以查看的报表信息查询出来

select

u.id,

u.username,

b.ROLEID,

c.name,

d.authorityEntityId,

d.authorityEntityType,

e.displayName

from

FINE_USER u

left join FINE_USER_ROLE_MIDDLE b on

u.id = b.userid

left join FINE_CUSTOM_ROLE c on

b.ROLEID = c.id

left join FINE_AUTHORITY d on

d.roleId = b.roleId

left join FINE_AUTHORITY_OBJECT e on

e.id = d.authorityEntityId

where

u.username = 'XX'

and c.name is not null

and d.authorityEntityType = 1

对应不出来每个用户能查看哪些报表的权限。

image.png

FineReport 重庆一棵草 发布于 2025-2-17 16:15 (编辑于 2025-2-17 16:23)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2025-2-17 16:16(编辑于 2025-2-17 16:22)

直接用插件导出呗

权限导出插件 https://help.fanruan.com/finereport/doc-view-3508.html

---------------

或是参考这个

用户权限查询 https://help.fanruan.com/finereport/doc-view-3882.html

B6732FCD-0890-4427-B60B-1D55C10EDCCB.png

最佳回答
0
snrtuemcLv8专家互助
发布于2025-2-17 16:16(编辑于 2025-2-17 16:18)

直接这插件就可以

权限导出插件 https://help.fanruan.com/finereport/doc-view-3508.html

====

你非要sql自己查,参考

查询用户报表权限

select 

T3.REALNAME AS 姓名,

T3.USERNAME AS 用户名,

T5.ID       AS 角色ID,

T5.NAME     AS 角色名称,

T6.PATH     AS 报表链接路径,

T6.ID       AS 报表预览ID

FROM FINE_USER t3 --用户表

LEFT JOIN FINE_USER_ROLE_MIDDLE T4 ON T3.ID = T4.USERID AND T4.ROLETYPE=2 -- 用户角色中间表

LEFT JOIN FINE_CUSTOM_ROLE T5 ON T4.ROLEID = T5.ID --角色表

LEFT JOIN 

(

select

T1.ROLEID,  --角色ID

T2.PATH,    --报表链接路径,

T2.ID       --报表预览ID

FROM FINE_AUTHORITY T1 --权限表

LEFT JOIN FINE_AUTHORITY_OBJECT T2 ON T1.AUTHORITYENTITYID = T2.ID --权限实体表

) T6 ON T6.ROLEID = T4.ROLEID

WHERE T3.REALNAME='XXX'

ORDER BY T3.ID

  • 重庆一棵草 重庆一棵草(提问者) 我上面的sql跟你这差不多 获取不到正确的displayName或者说是获取不到我想要的displayName
    2025-02-17 16:22 
  • snrtuemc snrtuemc 回复 重庆一棵草(提问者) 去原始表看看displayName原始数据
    2025-02-17 16:29 
  • 重庆一棵草 重庆一棵草(提问者) 回复 snrtuemc 原始数据的也有这几条 但是没取到其他的。上面哪个老哥的可以查到 谢谢了。
    2025-02-17 16:35 
  • 3关注人数
  • 35浏览人数
  • 最后回答于:2025-2-17 16:23
    请选择关闭问题的原因
    确定 取消
    返回顶部