【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'
【BOS基础系统_权限】授权规则被引用无法删除
问题背景:客户想删除某授权规则,会提示:“授权规则被引用无法删除”。但是由于用户组织角色权限分配很多,从前台一个个找很难找到是在哪...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇
下一篇



