3

是否可以仅删除与特定实体有关的审计日志数据?我们有一个巨大的审计日志,我们希望通过清除特定实体的日志数据来减少它,尽管我们确实希望保留其他实体日志。

4

2 回答 2

5

不支持按实体类型删除审计日志条目的方法。唯一支持审计删除的方法是按日期(即所有早于 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

特定实体类型的审计记录现已消失!

于 2013-04-18T15:14:44.887 回答
1

我知道这不是您要查找的内容,但是您可以调用DeleteAuditDataRequest API 消息来删除特定日期之前的所有审计数据。

至于删除特定记录,我不相信你可以。如果您尝试以下代码,您将收到以下错误“删除”方法不支持“审计”类型的实体

orgService.Delete("audit",auditId);

如果是本地环境,您可以直接访问数据库,并且可以归档审计记录或通过 SQL 删除它们。

希望有帮助。

于 2013-04-18T15:05:15.237 回答