电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

【BOS基础系统_权限】授权规则被引用无法删除

来源:金蝶云社区作者:金蝶2024-09-163

【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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信