EAS Cloud 大数据表(用户组织权限表)快速治理瘦身方案

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

EAS Cloud 大数据表(用户组织权限表)快速治理瘦身方案

::: hljs-center **权限数据表瘦身方案** ::: # 适用产品 EAS Cloud 所有版本 # 使用场景 当系统中用户及组织太多,并且过于依赖直接分配用户权限,未通过角色分配的形式。时间久了,导致组织权限表T_PM_USERORGPERM数据过大,数据库表空间占用过大,及相关功能性能急剧下降。此时可以通过此方案快速瘦身。 # 方案要领 1、找出权限记录过多的头部用户,可能几个头部用户的权限记录数占了整个表的50%以上。 2、大权限用户一般大部分组织上的权限都是相同的,可以对这些用户进行角色分配。 3、可以对找出的禁用和删除的用户删除权限进行删除。 4、采用复制数据创建新表的方式,避免原表物理空间碎片及高水位问题。 5、在新表上进行数据删除整理,避免影响业务。 # 方案步骤 1、检查权限表是否存单个用户大于100万(这里可以根据实际情况调整)权限记录的用户。 SELECT T1.FID AS "FID(用户ID)", T1.FNUMBER AS "FNUMBER(用户账号)", T1.FNAME_L2 AS "FNAME_L2(用户实名)", T1.FISDELETE AS "FISDELETE(用户是否删除[0:未删除,1、已删除])", T1.FFORBIDDEN AS "FFORBIDDEN(用户是否禁用[0:未禁用,1、已禁用])", T2.PERMCOUNTS AS "PERMCOUNTS(权限记录数)" FROM T_PM_USER T1 INNER JOIN (SELECT FOWNER, COUNT(0) AS PERMCOUNTS FROM T_PM_USERORGPERM GROUP BY FOWNER) T2 ON T1.FID = T2.FOWNER WHERE T2.PERMCOUNTS > 100000 ORDER BY T2.PERMCOUNTS DESC 这里可以在查询分析器进行执行,将查询统计结果导出到excel中,以便后续相关人员进行评估,那些用户的权限可以删除、以及那些需要转角色分配等。 ![image.webp](/download/0100ee5f08ce5b3545b6bc7742364adf4388.webp) **第1步一般周期比较长,当需要删除权限的用户及对应用户转角色方案都已经确认好后才开始以下步骤:** 2、将旧的标准表T_PM_USERORGPERM数据全部复制到新表T_PM_USERORGPERM_NEW (此时新表先不要建索引),参考SQL如下: SELECT * INTO T_PM_USERORGPERM_NEW FROM T_PM_USERORGPERM 3、对新表T_PM_USERORGPERM_NEW进行缩减(删除不需要的权限记录,如大权限用户、已禁用、已删除的用户权限记录),参考SQL如下 DELETE FROM T_PM_USERORGPERM_NEW where FOWNER = '用户ID' 注意:有效用户的组织权限数据删除前,需要评估怎么按角色重现分配。 4、对新表T_PM_USERORGPERM_NEW建立索引(索引和T_PM_USERORGPERM索引保持一致),参考SQL如下: 1)查询原表存在的索引 ``` SELECT USER_IND_COLUMNS.INDEX_NAME, USER_IND_COLUMNS.COLUMN_NAME, USER_IND_COLUMNS.COLUMN_POSITION, USER_INDEXES.UNIQUENESS FROM USER_IND_COLUMNS, USER_INDEXES WHERE USER_IND_COLUMNS.INDEX_NAME = USER_INDEXES.INDEX_NAME AND USER_IND_COLUMNS.TABLE_NAME = 'T_PM_PERMITEM'; ``` 2)按照原表存在的索引来重建新表索引: ALTER TABLE T_PM_USERORGPERM_NEW ADD CONSTRAINT PK_USERORGPERM_NEW PRIMARY KEY (FID); CREATE INDEX IX_PM_UOPOOP_NEW ON T_PM_USERORGPERM_NEW (FOWNER, FPERMITEMID, FPERMTYPE, FORGID); CREATE INDEX IX_PM_UOPOOP2_NEW ON T_PM_USERORGPERM_NEW (FOWNER, FORGID, FPERMITEMID, FPERMTYPE); CREATE INDEX IX_PM_UOPOOP3_NEW ON T_PM_USERORGPERM_NEW (FORGID,FOWNER,FPERMITEMID); 5、将旧的标准表T_PM_USERORGPERM 重命名为备份表T_PM_USERORGPERM_BAK,参考SQL如下: ALTER TABLE T_PM_USERORGPERM RENAME TO T_PM_USERORGPERM_BAK; 6、将新表T_PM_USERORGPERM_NEW重命名为标准表T_PM_USERORGPERM,参考SQL如下: ALTER TABLE T_PM_USERORGPERM_NEW RENAME TO T_PM_USERORGPERM; 7、后面测试完全没问题了,可以考虑清理备份表数据:T_PM_USERORGPERM_BAK,以降低表空间占用。 # 注意事项 1、以上方案及参考SQL都需要DBA进行评估及执行。 2、由于涉及到表操作,避免影响用户使用,尽量在系统使用较少操作。

EAS Cloud 大数据表(用户组织权限表)快速治理瘦身方案

::: hljs-center**权限数据表瘦身方案**:::# 适用产品EAS Cloud 所有版本# 使用场景 当系统中用户及组织太多,并且过于依赖直接...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息