开发者方式
您需要开发人员连接 sfdx(如果命令行很吓人 - 有 VSCode 编辑器)或类似工具并下载“元数据”。然后使用 WinMerge 之类的东西比较 XML 文件
https://trailhead.salesforce.com/content/learn/projects/quickstart-vscode-salesforce 如果您从未做过并且手边没有开发人员,可能会有所帮助。
配置文件和权限集可能非常大,下载的内容取决于您下载的其他内容。定义“一切”。如果您在“package.xml”中指明您需要所有对象、类和权限集 - 权限集文件应包括“Apex 类访问”、字段级别安全性、允许的记录类型等复选框 - 但可能不包括“Visualforce 页面访问”,选项卡可见性等,因为您没有包括它们)。 plugin to VSCode 很酷,可以为您构建“package.xml”文件,选择您需要的文件。
一旦你有了这些,你就可以在 Winmerge(或任何你喜欢的“差异工具”)中加载它们并比较最多 3 个文件。需要一段时间才能习惯(你可以从比较两个开始,而不是三个)。
您将在左侧看到更改行的概述,您可以决定将最左侧的文件合并为合并行。逐行添加您所看到的权限。然后您可以将最终文件保存为第 4 个 perm 集并使用相同的 sfdx/vscode 进行部署。
分析方法
如果您觉得自己像 Excel 大师...这些数据应该是可查询的,以便您可以导出它并以这种方式破解一些比较。同样 - 复选框将分布在不同的表中,因此您需要比较对象权限、字段级安全性、类访问权限,然后...
https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_erd_profile_permissions.htm
这将是一个开始
SELECT Parent.Name, SobjectType, PermissionsRead, PermissionsCreate, PermissionsEdit, PermissionsDelete
FROM ObjectPermissions
WHERE SobjectType IN ('Account', 'Contact', 'Case') AND Parent.Name IN ('PS1', 'PS2', 'PS3')
ORDER BY SobjectType, Parent.Name
这是一项非常忘恩负义的工作,因为您需要跨行编写公式或以某种方式对其进行旋转...另请注意,我的 PS2 根本无法访问 Cases - SF 不会费心保持所有错误的行,它只是不存在。
¥€$方式
钱可以解决一切,嗯? OwnBackup、Gearset、Copado 等部署和备份工具可以检测磁盘和组织上的项目之间的变化……您可以在另一个沙箱中将 PS2 重命名为 PS1 并让工具比较它们? (我不隶属于任何此类工具供应商)
还有https://perm-comparator.herokuapp.com/,如果您不怕第三方应用程序会获得对您组织的系统管理员访问权限(没有亲自使用,只是谷歌了它)
很久以前,我的同事从Config Workbook 获得了有希望的出口。再说一遍 - 没有亲自使用过,截图看起来不错。