A security engineer investigating a compliance escalation pulls up Microsoft Purview’s unified audit log and searches for changes to a customer’s tax identification field in a Dynamics 365 Finance environment. The Dataverse audit configuration has been correctly enabled for years: environment-level auditing is on, the table is audited, the column is audited, and “Read logs” has been flowing activity to Purview since the tenant went live. Yet the search results show the record was updated, by whom, and when, but the actual before-and-after values for that field come back empty. Nothing is broken. Since June 26, 2026, Dataverse audit logs to Purview have deliberately worked this way for a defined set of sensitive columns, and most compliance and security teams have not yet updated their runbooks to account for it.
The feature responsible is a narrowly scoped but consequential change: Dataverse now strips certain categories of sensitive data, specifically financial information, health data, and personally identifiable information, out of audit events before they are transmitted to Purview’s activity logging pipeline. The values still exist. They are simply no longer making the trip to Purview, and that distinction has real operational consequences for anyone who built incident response, eDiscovery, or SIEM processes on the assumption that Purview’s audit log search was the complete picture.
What Actually Changed in Dataverse Audit Logs to Purview
Dataverse auditing has always captured create and update events at the column level, including the before-and-after value of every audited field, when environment, table, and column auditing are all enabled through the hierarchy Microsoft documents under Security, Compliance, and Auditing in the Power Platform admin center. Historically, if the environment’s “Read logs” setting was turned on, that entire audit record, field values and all, flowed to Purview’s unified audit log and became searchable at compliance.microsoft.com/auditlogsearch by anyone with the appropriate compliance role.
That behavior is what changed with general availability on June 26, 2026. Microsoft’s own release notes describe the mechanism plainly: create and update events, including a column’s before-and-after values, are still captured in Dataverse’s native audit store exactly as before. What changes is the copy sent onward to Purview. Financial data, health and medical information, and personally identifiable information are removed from that outbound payload before it leaves Dataverse. A change to a customer’s shipping address or a sales order’s discount percentage will still show full detail in Purview. A change to a national ID number, a diagnosis code stored in a custom health field, or a salary figure will not, even though every one of those changes is still fully visible inside Dataverse itself.
The rationale is straightforward: the unified audit log has a materially larger blast radius than Dataverse’s native audit history. Native audit history requires a Dataverse security role scoped to a single environment. The Purview unified audit log is a tenant-wide surface, reachable through eDiscovery cases and exportable by compliance investigators who may hold no Dynamics 365 role at all, retained under Microsoft 365 audit policy rather than Dataverse’s own retention settings. Sending unredacted salary or health data into that surface multiplied the number of people who could, deliberately or accidentally, end up looking at it.
Two Purview Pipelines That Behave Differently
Here is where the practical confusion tends to start. Dataverse actually feeds Purview through two distinct mechanisms, and they were never symmetrical even before this change. Classic Dataverse auditing, the one most organizations configured years ago through the environment’s “Log access” and “Read logs” toggles, is the pipeline this new redaction applies to. It is also the pipeline that historically sent complete field-level detail.
Separately, Dataverse’s comprehensive activity logging, the broader mechanism that captures nearly every SDK message an environment processes, including bulk exports, Advanced Find queries, and support engineer actions, has never sent column-level before-and-after values to Purview at all. Microsoft’s own documentation on comprehensive auditing states that column-level secured field values are sent to Purview as an asterisk rather than the underlying data, and that detailed field-level changes are withheld entirely from that pipeline specifically to prevent data leaks. That restriction predates the June 2026 change and applies regardless of whether a field touches financial, health, or PII data.
The practical upshot is that an organization relying primarily on comprehensive activity logging for its Purview visibility was already missing granular field values, and nothing changes for them. An organization that built its compliance program around classic Dataverse auditing with “Read logs” enabled, treating Purview’s audit log search as a faithful mirror of Dataverse’s own audit history, just lost a slice of that fidelity for exactly the categories of data most likely to matter in a regulatory inquiry.

Where the Complete Record Still Lives
Nothing about this change reduces what Dataverse itself retains. The full before-and-after values for every audited column, sensitive or not, remain in Dataverse’s native audit store under whatever retention policy the environment has configured, which can run from a fixed number of days out to indefinite retention on production environments that support it. That data is accessible through the Power Platform admin center’s auditing summary view, through the classic audit history UI on individual records, and programmatically through the Dataverse Web API using the Audit entity or the RetrieveRecordChangeHistory message.
This is the detail worth building process around: if an investigation genuinely needs the value of a redacted sensitive field, the answer is not to escalate a Purview support ticket, it is to pivot the investigation to query Dataverse directly, using a role that has legitimate access to the Audit entity in that specific environment. That is a narrower, more auditable path than a tenant-wide Purview search, which is precisely the point of the change, but it means any documented incident response procedure that says “search Purview” as the first and only step now needs a second step for sensitive-field cases.
What to Check in Your Environment
Start by confirming which environments actually have “Read logs” enabled at the environment level, since that is the specific setting this change affects. Environments relying solely on comprehensive activity logging were never sending field-level detail to Purview and require no adjustment on this front, though it is still worth confirming which pipeline your compliance team believes it is querying, because in practice that assumption is not always accurate.
Next, inventory any downstream system that consumes Purview’s unified audit log for Dataverse activity: SIEM ingestion pipelines, Sentinel analytics rules built on audit log content, scheduled compliance reports, or custom Power BI dashboards pulling from the audit log search API. Any of these that parse or alert on specific before-and-after field values for financial, health, or PII columns will now see blank or null values where they previously saw data, which can silently break a detection rule that was matching on a specific value pattern rather than simply on the fact that a change occurred.
It is worth testing this directly rather than taking the documentation’s word for it, since Microsoft does not fully specify the exact classification logic used to flag a column as financial, health, or PII data. In a sandbox environment, make a controlled change to a column you believe falls into one of those categories, then compare what appears in Purview’s audit log search against what native Dataverse audit history shows for the same event, and repeat the test with a column outside those categories. The gap between documentation and observed behavior is where governance teams tend to get surprised months later.
A Compliance Improvement, Not a Complete DLP Control
It is tempting to read this feature as Microsoft having solved sensitive-data exposure in audit logging, and it has not, at least not entirely. It reduces exposure specifically on the path from Dataverse to Purview’s unified audit log for three defined data categories. It does nothing about sensitive data that lives in Dataverse’s own audit store, in exports, in Dataflows destinations, in Power BI datasets built on top of audited tables, or in any custom integration that pulls audit data directly from the Web API rather than through Purview. Organizations that treat this as a checkbox for their broader data loss prevention obligations under regulations like HIPAA or a state privacy law are conflating a narrow platform default with a program-level control, and an auditor will draw that distinction even if the platform release notes do not spell it out.
The more accurate framing is that Microsoft closed one specific, previously overlooked exposure path, and organizations now need to confirm their own audit consumption patterns still work correctly on the other side of that change. For teams running Dynamics 365 Finance and Operations or Customer Engagement with meaningful volumes of regulated data, that is a worthwhile few hours of validation, not a reason to assume the compliance posture improved on its own without anyone checking. Routeget Technologies has walked several clients through exactly this kind of audit configuration review after a platform-level change shifted what their existing monitoring actually captured, and the pattern is consistent: the environments that catch these gaps early are the ones that treat platform release notes as an input to a review, not as the review itself.
#DataverseAudit #MicrosoftPurview #PowerPlatformGovernance #DataLossPrevention #ComplianceMonitoring #EnterpriseSecurity


















