The Dataverse audit log: growth, retention period and safe reduction
The Dataverse audit log, which the admin center calls “Auditing”, shows who changed what and when. It takes up log capacity, and log storage can borrow only from unused database capacity. From 9 November 2026, Microsoft restricts tenants over their entitlement in stages (deadlines and checklist). This article explains why the log grows, what role the retention period plays and how to reduce the log without losing evidence.
What log storage contains
Microsoft counts three things toward log capacity: the audit table AuditBase, the plug-in trace logs in PlugInTraceLogBase and elastic tables. A daily Dataverse job removes plug-in trace logs after 24 hours; what can grow for years is mainly the audit log and elastic tables. Even so, if the plug-in trace log setting is “All” in production, new entries are created all the time; Microsoft recommends “Off” there.
Why the audit log grows
- Every value change in an audited column creates an entry. Dataverse logs the creation, update and deletion of records, sharing, N:N associations and changes to security roles. An update creates an entry only if the value actually changes.
- Many tables at once. The option “Common entities across Dynamics 365 apps” (Power Platform admin center › Security › Compliance › Auditing) turns on auditing for 40 standard tables, including Account, Contact, Lead, Opportunity, Quote, Order, Invoice and Case.
- Integrations and automation. Interfaces, flows and plug-ins that set fields regularly create an entry with every value change, with no person involved, for example a nightly sync that transfers status or date fields from an ERP system.
- Access logging. If “Log access” is turned on, Dataverse logs user sign-ins. The
useraccessauditingintervalcolumn sets the interval; the default is 4 hours. - No retention limit. If retention is set to “Forever”, Dataverse deletes no entries. The log then grows with every month of operation.
How to measure
- Total volume: Power Platform admin center › Licensing › Dataverse › Environment › Consumption per table, storage type Log. The audit log appears there as one table:
AuditBase. - Share per table: The Web API action
GetAuditStorageDetailsreturns the audit size per table; Microsoft describes the call in the article “Recover database space by deleting audit logs”. The calculation runs asynchronously: if at first only a status comes back, call the action again later. - Rough conversion: In our development environment, one audit entry took up about 1,400 bytes of log capacity (measured on a table with 12,230 entries). 1 GB therefore corresponds to roughly 700,000 entries. Your figure depends on how many columns are logged per change.
The retention period: auditretentionperiodv2
How long Dataverse keeps audit entries is set in the auditretentionperiodv2 column of the organization table, in days. The value -1 means “forever”; any other value is the period in days.
- Read it:
GET organization URL/api/data/v9.2/organizations?$select=auditretentionperiodv2 - Set it: Power Platform admin center › Manage › Environments › environment › Settings › Audit and logs › Audit settings › “Retain these logs for”. Alternatively: Security › Compliance › “Auditing” tile.
Three things to know about the retention period:
- Each entry gets the retention period that applies at the moment it is created. A change in the environment settings affects only new entries. Microsoft’s example: if the period is extended from 30 to 90 days, Dataverse still deletes the older entries after 30 days.
- Through Security › Compliance, you can also apply the period to existing entries. A shorter period then applies to the existing history as well.
- Microsoft’s documentation is inconsistent about the default. The administrator page says “Forever”, the developer page says 30 days. Read the value of your environment instead of assuming it.
The risk of a retention period that is too short
A short retention period reliably lowers log storage and continuously deletes history in the process. Dataverse removes every entry as soon as it is older than the period, without asking and without a recycle bin. Microsoft states that deleted audit logs are not recoverable.
After that, there is no evidence of who changed a price, an address or a security role, or who deleted a record. Internal audit, external auditors or customers ask such questions years later, too.
That is why you should set the period together with internal audit and data protection. The yardstick is the longest period over which you must be able to prove changes, not the storage available. If you archive, you need a second rule: the period in Dataverse must be longer than the interval until the export. Otherwise entries disappear before they reach the archive.
Archiving instead of deleting
In its storage management guidance, Microsoft recommends keeping audit logs in your own storage (“Audit logs: Retain it in your own storage”). These are the options:
| Option | What it does | Limits |
|---|---|---|
| Dataverse long-term retention | keeps inactive business data read-only in Dataverse | does not take audit tables |
| Azure Synapse Link for Dataverse | replicates the audit table to your Azure storage | only with the Delta Lake profile, which new customers can no longer use from 15 October 2026 (existing customers until December 2027); audit tables with more than 100 million entries are not synchronized; requires a Synapse workspace and a Spark pool; deletes nothing in Dataverse |
| Your own scripts using the Web API or SDK | export to your own specifications; Microsoft points to this option because the admin center offers no export | completeness, safe deletion and readability are up to you |
| NXTGN Capacity Control | exports every completed month per table to your Azure Blob Storage, verifies every audit ID in the archive and removes entries only after that, following your rule | archive currently only in Azure Blob Storage |
With NXTGN Capacity Control, archived entries remain readable in the app and in the record’s history, even after the contract ends. In our test environment, 1 GB of audit data took up about 0.17 GB in the archive.
Safe reduction in five steps
- Measure. Log consumption in the admin center, the share per table through
GetAuditStorageDetails, plus the retention period that is set. - Check the inflow. Turn off auditing where nobody needs evidence, for example for technical columns that an interface rewrites constantly (Power Apps › Tables › table › Columns › column › Advanced options › “Enable auditing”). Agree on access logging with data protection and the works council.
- Set the retention period. Together with internal audit and data protection. If you archive: longer than the interval until the export.
- Archive, verify, then delete. Export older months and check that they are complete. Only then delete in Dataverse, for example in the admin center under Manage › Environments › environment › Auditing › “Delete audit logs”. Note: “By table” deletes all entries of the selected tables, “All logs up to and including the selected date” deletes the entries of all tables up to that day. Microsoft gives a guideline of about 100 million deleted entries per day; the capacity report shows the effect after up to 72 hours.
- Repeat every month. Each month, another month of entries is added. A fixed schedule keeps the log small. NXTGN Capacity Control does this work following your rule.
Sources
- Microsoft Learn: Manage Dataverse auditing (opens in a new tab): retention, deletion options, guideline of 100 million entries per day
- Microsoft Learn: Configure auditing (opens in a new tab):
auditretentionperiodv2,useraccessauditinginterval - Microsoft Learn: Recover database space by deleting audit logs (opens in a new tab):
GetAuditStorageDetails, deleted logs not recoverable - Microsoft Learn: Dataverse capacity-based storage details (opens in a new tab): tables counted as log capacity, borrowing between storage types
- Microsoft Learn: Tracing and logging (opens in a new tab) and Delete completed system jobs and process log (opens in a new tab): plug-in trace logs deleted after 24 hours, recommendation “Off” in production
- Microsoft Learn: Storage management in Dataverse and finance and operations apps (opens in a new tab): “Audit logs: Retain it in your own storage”
- Microsoft Learn: Dataverse long term data retention overview (opens in a new tab): audit tables not supported
- Microsoft Learn: Azure Synapse Link for Dataverse FAQ (opens in a new tab), Export Dataverse data in Delta Lake format (opens in a new tab) and Access audit data using Azure Synapse Link (opens in a new tab)
- NXTGN measurements in our development environment (4 October 2026)