【BOS基础系统_权限】授权规则被引用无法删除
问题背景:客户想删除某授权规则,会提示:“授权规则被引用无法删除”。但是由于用户组织角色权限分配很多,从前台一个个找很难找到是在哪里被分配的。并且由于授权规则T_pm_rule表的fid不是直接被用户组织权限表T_pm_userorgperm和角色权限表t_pm_rolerperm直接字段关联的,所以通过查询分析器全文检索也没法查到具体引用的表和数据。
请先参考该地址格式化以下sql再使用:https://tool.oschina.net/codeformat/sql
下面介绍查询逻辑和sql:
--1、查询出该授权规则的fid SELECT fid,FNUMBER ,FNAME_L2 FROM T_pm_rule where FNUMBER = '此处替换为授权规则的编码' --2.1、查询出引用授权规则的用户组织权限(T_PM_UserOrgPerm) SELECT * FROM T_PM_UserOrgPerm WHERE FRuleStructure IS NOT NULL AND FRuleStructure LIKE '%此处替换授权规则fid%' --2.2、查询出引用授权规则的角色权限(T_PM_RolePerm) SELECT * FROM T_PM_RolePerm WHERE FRuleStructure IS NOT NULL AND FRuleStructure LIKE '%此处替换授权规则fid%'
如果确认该条授权规则确实想要删除,那即可把上述2.1,2.2查出来的数据删除即可,记得删除之前建议先备份表数据。
例如:
--备份用户组织权限表数据 select * into T_PM_UserOrgPerm_back20210724 from T_PM_UserOrgPerm --备份角色权限表数据 select * into T_PM_RolePerm_back20210724 from T_PM_RolePerm
补充:
--查询该用户在哪些组织下分配了引用了该授权规则的哪些角色(替换用户fid和编码规则fid)
SELECT u.fnumber AS 用户名, bu.fnumber AS 组织编码, r.fnumber AS 角色编码 FROM t_pm_userroleorg uro INNER JOIN t_pm_user u ON uro.fuserid = u.fid INNER JOIN t_org_baseunit bu ON uro.forgid = bu.fid INNER JOIN t_pm_role r ON uro.froleid = r.fid WHERE uro.FROLEID IN ( SELECT froleid FROM T_PM_RolePerm RolePerm INNER JOIN T_PM_PermItem PermItem ON PermItem.FID = RolePerm.FPermItemID WHERE RolePerm.FRuleStructure IS NOT NULL AND RolePerm.FRuleStructure LIKE '%此处替换编码规则fid%' ) AND uro.fuserid = '此处替换用户fid'
--查询所有用户在哪些组织下直接通过分配权限绑定了哪些授权规则(直接分配权限绑定了授权规则)
SELECT u.fnumber AS 用户名, bu.fnumber AS 组织编码, p.falias_l2 AS 权限项名称, p.FLONGNUMBER AS 权限项长编码, uop.FRULEEXPR AS 授权规则 FROM t_pm_userorgperm uop INNER JOIN t_pm_user u ON uop.FOWNER = u.fid INNER JOIN t_org_baseunit bu ON uop.forgid = bu.fid INNER JOIN T_PM_PermItem p ON p.fid = uop.FPERMITEMID WHERE uop.FRULEEXPR IS NOT NULL AND uop.FPERMTYPE = 10
--查询所有用户在哪些组织下分配了绑定了授权规则的权限的哪些角色(通过角色分配绑定了授权规则的权限)
SELECT u.fnumber AS 用户名, bu.fnumber AS 组织编码, r.fnumber AS 角色编码, p.falias_l2 AS 权限项名称, p.FLONGNUMBER AS 权限项长编码 , rp.FRULEEXPR AS 授权规则 FROM t_pm_userroleorg uro INNER JOIN t_pm_user u ON uro.fuserid = u.fid INNER JOIN t_org_baseunit bu ON uro.forgid = bu.fid INNER JOIN t_pm_role r ON uro.froleid = r.fid INNER JOIN T_PM_RolePerm rp ON rp.FROLEID = uro.FROLEID INNER JOIN T_PM_PermItem p ON p.fid = rp.FPERMITEMID WHERE rp.FRULEEXPR IS NOT NULL AND rp.FPERMTYPE = 10 ORDER BY u.FNUMBER
【BOS基础系统_权限】授权规则被引用无法删除
问题背景:客户想删除某授权规则,会提示:“授权规则被引用无法删除”。但是由于用户组织角色权限分配很多,从前台一个个找很难找到是在哪...
点击下载文档
本文2024-09-16 22:19:43发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-47439.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章