【BOS基础系统_权限】用户组织权限相关查询SQL

----------------- 用户权限查询相关sql汇总-------------------
背景:EAS产品权限体系内部有一些逻辑处理,前台无法清楚详细的展示每个用户在每个组织下的'实际'权限信息。因此篇文章是根据用户权限体系内部逻辑整理的各种常用查询sql来帮助大家学习并了解用户组织权限的实际关系。
注意:由于社区文章查看会修改之前的格式,复制以下sql需要自行调整格式,或者使用附件里面的sql.
首先这里放上客户经常想要的sql:
--用户,权限(包含角色分配的权限),组织关系查询。(查看所有用户在哪些组织下有哪些功能权限)
--注意:权限类型 10:操作权;20:禁止权
SELECT u.fnumber as 用户名,bu.fnumber as 组织编码 ,bu.fname_l2 as 组织名称,pm.falias_l2 as 权限项名称, pm.flongnumber as 权限项长编码, pm.ftype as 权限类型 FROM
( SELECT fuserid,forgid,fpermitemid,fpermtype from (
SELECT fowner AS fuserid, forgid, fpermitemid, fpermtype
FROM t_pm_userorgperm
UNION ALL
SELECT fuserid, forgid, fpermitemid, b.fpermtype
FROM t_pm_userroleorg a
JOIN t_pm_roleperm b ON a.froleid = b.froleid
) )s
INNER JOIN T_pm_user u on s.fuserid = u.FID
INNER JOIN T_pm_permitem pm on s.fpermitemid = pm.FID
INNER JOIN T_org_baseunit bu on s.forgid = bu.FID
其他常用sql
--1、用户组织权限表 的关系(操作权限)
select u.FNUMBER as "用户名",bu.FNUMBER as "组织编码" , p.FNUMBER as "权限项编码",p.FALIAS_L2 as "权限项别名" from t_pm_userorgperm uop
inner join t_pm_user u ON uop.FOWNER = u.FID
inner join t_pm_permitem p ON uop.FPERMITEMID = p.FID
inner join t_org_baseunit bu ON UOP.FORGID = BU.FID
where uop.FPERMTYPE = 10 and u.FIsDelete = 0
-- 2、用户组织角色表 的关系
SELECT u.FNUMBER as 用户名,r.FNUMBER as 角色编码,bu.FNUMBER as 组织单元编码 FROM T_PM_USERROLEORG uro
INNER JOIN T_PM_USER u ON URO.FUSERID = U.FID
INNER JOIN T_PM_ROLE r ON URO.FROLEID = R.FID
INNER JOIN T_ORG_BASEUNIT bu ON URO.FORGID = BU.FID
where u.FIsDelete = 0
--3、查询这个用户 在哪些组织下 拥有哪些操作权限 (替换用户id)
SELECT fowner AS fuserid, forgid, fpermitemid, fpermtype
FROM t_pm_userorgperm
WHERE fowner IN ('用户id')
UNION ALL
SELECT fuserid, forgid, fpermitemid, b.fpermtype
FROM t_pm_userroleorg a
JOIN t_pm_roleperm b ON a.froleid = b.froleid
WHERE fuserid IN ('用户id')
--4、查看哪些用户在哪些组织下拥有该操作权限(4.1
【BOS基础系统_权限】用户组织权限相关查询SQL
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



