权限细粒度

怎么在sql中根据登录用户的角色看是否要查看全部数据,如果只是普通角色只查看到自己的数据

FineReport fairyxw 发布于 2024-3-22 09:32
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-3-22 09:36

SELECT *FROM TABLE WHERE 1=1 ${IF(fine_role=="普通角色"," and 人员姓名字段='"+fine_username+"'","")}

  • fairyxw fairyxw(提问者) 如果是管理员的角色,怎么查看全部数据呀
    2024-03-22 09:46 
  • Z4u3z1 Z4u3z1 回复 fairyxw(提问者) 照猫画虎啊
    2024-03-22 09:48 
  • fairyxw fairyxw(提问者) 哦哦,看明白了
    2024-03-22 09:50 
  • fairyxw fairyxw(提问者) SELECT TO_CHAR(FOPDATE,\'yyyy\')AS 年份,FSSJB,FSSJBBH,FDOCNAME AS 主刀,COUNT(FSSJB) 完成例数 FROM BA_TOPERATION T WHERE TRUNC(FOPDATE) >= TO_DATE(\'2013-01-01\', \'yyyy-mm-dd\') AND TRUNC(FOPDATE) <= TO_DATE(\'2022-12-31\', \'yyyy-mm-dd\') ${IF(fine_role==\'(SELECT A.NAME FROM HIP_DATA_NEW.JFW_ROLE A,HIP_DATA_NEW.JFW_USER_ROLE B WHERE A.ID=B.ROLE_ID AND B.USER_ID=\'\"+fine_username+\"\' AND A.NAME=\'高评管理\')\',\"\",\" and FDOCNAME=\'\"+fine_username+\"\'\")} GROUP BY FSSJB ,TO_CHAR(FOPDATE,\'yyyy\'),FDOCNAME,FSSJBBH ORDER BY TO_CHAR(FOPDATE,\'yyyy\') ASC,FSSJBBH ASC
    2024-03-22 11:22 
  • fairyxw fairyxw(提问者) 回复 Z4u3z1 那个角色没起作用,无论是不是高评管理的角色都能查看全部数据
    2024-03-22 11:23 
最佳回答
0
CD20160914Lv8专家互助
发布于2024-3-22 09:36(编辑于 2024-3-22 09:36)
最佳回答
0
luojian0323Lv7资深互助
发布于2024-3-22 09:36

.........

where 1=1

${if(finerole="指定角色",""," and 角色字段='"+finerole+"'")}

在数据集参数中对finerole参数 指定值为:$fine_role

  • 3关注人数
  • 180浏览人数
  • 最后回答于:2024-3-22 09:36
    请选择关闭问题的原因
    确定 取消
    返回顶部