↳ GitHub sourceAnalytics ruleMedium

Dataverse - Mass deletion of records

Description

Identifies large scale record delete operations based on a predefined threshold and also detects scheduled bulk deletion jobs.
Rule type
Scheduled
Version
3.2.0
Declared status
Available
Query frequency
1h
Query period
14d
Trigger
gt 0

Declared MITRE coverage

Declared sources

Metadata from the source file. No dependencies inferred from KQL.

Connectors

Data types

KQL query

Original query, unchanged.

let mass_delete_threshold = 10000;
let query_frequency = 1d;
let delete_activities = DataverseActivity
    | where TimeGenerated >= ago(query_frequency)
    | where Message == "Delete";
union
    (
    delete_activities
    | summarize FirstEvent = min(TimeGenerated), TotalEvents = count() by UserId, InstanceUrl
    | where TotalEvents > mass_delete_threshold
    | join kind=inner (
        delete_activities
        | summarize DeleteCount = count() by UserId, InstanceUrl, ClientIp, EntityName)
        on UserId, InstanceUrl
    | extend Entities = bag_pack("Entity", EntityName, "Count", DeleteCount)
    | summarize Details = make_set(Entities, 100), FirstEvent = min(FirstEvent) by UserId, InstanceUrl, ClientIp, TotalEvents
    ),
    (
    DataverseActivity
    | where TimeGenerated >= ago(query_frequency)
    | where Message == "BulkDelete"
    | summarize FirstEvent = min(TimeGenerated), TotalEvents = count() by UserId, InstanceUrl, ClientIp
    | extend Details = todynamic("Bulk delete scheduled")
    )
| extend
    CloudAppId = int(32780),
    AccountName = tostring(split(UserId, '@')[0]),
    UPNSuffix = tostring(split(UserId, '@')[1])
| project
    FirstEvent,
    UserId,
    ClientIp,
    TotalEvents,
    Details,
    InstanceUrl,
    CloudAppId,
    AccountName,
    UPNSuffix

Declared entities

AccountCloudApplicationIP

Related content

Links established from declared identifiers and solution manifests.

Source provenance

GitHub

Displayed values come from files in Azure/Azure-Sentinel. They describe the published template, not your workspace configuration.

Source identifier
716cf6d4-97ad-407b-923e-6790083acb58
Additional source files 2Solutions/Microsoft Business Applications/Analytic Rules/Dataverse - Mass deletion of records.yamlsource ↗Solutions/Microsoft Business Applications/Data/Solution_PowerPlatform.jsonsolution-membership ↗
GSTEP / CATALOG TRACKING

Added to catalog : 16 Sept 2026 · 05:49 UTC
Last change observed : 16 Sept 2026 · 05:49 UTC

GSTEP sync dates, separate from the source content’s publication dates.