是否可以删除仅与特定实体相关的审核日志数据?我们有一个巨大的审计日志,我们希望通过清除特定实体的日志数据来减少这些日志,尽管我们确实希望保留其他实体的日志。
答案 0 :(得分:4)
没有按实体类型删除审核日志条目的支持方法。审核删除的唯一方法支持是按日期(即,所有早于X日期的记录。)*注意:根据SQL环境,可用的结束日期可能仅限于审核日志分区的结束日期。 *
也就是说,有一种不受支持的方法可以满足这一要求。 关键:让您的CRM服务器脱机,备份数据库,并在尝试之前测试还原 - 没有可用于我建议的支持,因为这违反了Dynamics CRM 2011 SQL数据库上支持的操作。 强>
审核日志存储在表dbo.AuditBase
中。此表没有扩展基础,因此每个审计条目只需要记录一条记录。
您需要实体的ObjectTypeCode
。您可以通过运行以下脚本从数据库中获取此信息:
SELECT [EntityId],[Name],[ObjectTypeCode]
FROM [].[MetadataSchema].[Entity] ORDER BY Name
现在您已经ObjectTypeCode
只需将下面脚本中的xxxx替换为值并运行脚本。
DELETE FROM [].[dbo].[AuditBase] WHERE ObjectTypeCode = xxxx
特定实体类型的审核记录现已消失!
答案 1 :(得分:0)
我知道这不是您想要的,但有一条DeleteAuditDataRequest API消息可以在特定日期之前删除所有审核数据。
至于删除特定记录,我认为你不能。如果您尝试以下代码,您将收到以下错误'删除'方法不支持'audt'类型的实体
orgService.Delete("audit",auditId);
如果它是一个内部部署环境,您可以直接访问数据库,并且可以存档审计记录或通过SQL删除它们。
希望有所帮助。