Skip to content

Understanding DevOps Auditing API Migration Behavior in Azure SQL Database

 Background 


Historically, DevOps Auditing could be configured through the server-level auditing API using the isDevopsAuditEnabled property under: 


Microsoft.Sql/servers/auditingSettings 


As Azure SQL auditing capabilities evolved, a dedicated resource was introduced specifically for DevOps Auditing: 


Microsoft.Sql/servers/devOpsAuditingSettings 


This dedicated API is now the supported approach for configuring DevOps Auditing.  


The Question 


Customers occasionally observe that setting isDevopsAuditEnabled=true continues to work on some servers but not on others. 


A recent customer engagement highlighted this scenario where the same deployment was able to enable DevOps Auditing on most servers, while a smaller subset of servers ignored the setting even though the ARM operation completed successfully.  


At first glance, this appears inconsistent. However, the behaviour is expected. 


How Backward Compatibility Works 


Today, Azure SQL maintains backward compatibility for customers who still use the legacy auditing API. 


The behaviour is as follows: 



  1. The recommended and supported approach is to use the dedicated DevOps Auditing resource: 


Microsoft.Sql/servers/devOpsAuditingSettings 



  1. The isDevopsAuditEnabled property under: 


Microsoft.Sql/servers/auditingSettings 


is no longer recommended for new implementations. 



  1. To preserve backward compatibility, the legacy property may continue to work for servers that have never been migrated to the new model. 



  1. Once the dedicated DevOps Auditing API is used on a server for the first time, that server is permanently marked as migrated. 



  1. After migration, the legacy isDevopsAuditEnabled property is no longer honoured for that server, even if it is supplied in subsequent requests.  


Why Some Servers Behave Differently 


Consider an environment with hundreds of Azure SQL servers managed through ARM templates or Azure Policy. 


The deployment may successfully update: 


{ 


“type”: “Microsoft.Sql/servers/auditingSettings”, 


“properties”: { 


“isDevopsAuditEnabled”: true 


} 


} 


For servers that have never used the new DevOps Auditing resource, the setting may still take effect. 


For servers that were previously configured through: 


Microsoft.Sql/servers/devOpsAuditingSettings 


the server is already considered migrated. In these cases, the request can complete successfully, but the legacy property is ignored and DevOps Auditing remains unchanged.  


Recommended Action 


Customers should migrate all automation, ARM templates, Bicep templates, Terraform deployments, and Azure Policies to use the dedicated DevOps Auditing resource: 


Microsoft.Sql/servers/devOpsAuditingSettings 


and avoid relying on the legacy isDevopsAuditEnabled property going forward.  


Key Takeaway 


If isDevopsAuditEnabled appears to work for some servers but not others, it is usually due to the server’s migration state: 



  • Not yet migrated → legacy flag may still work. 



  • Already migrated → legacy flag is ignored. 



  • Use Microsoft.Sql/servers/devOpsAuditingSettings for all future configurations.  


This behaviour allows Azure SQL to maintain backward compatibility while providing a clear migration path to the dedicated DevOps Auditing configuration model.  

Microsoft Tech Community originally posted this article on 31 August 2026 at 8:10 AM.

Leave a Reply