How to tell which resources are using Azure SQL Database 2014-04-01 APIs

Ryan Brown 40 Reputation points

I got the email that says I have resources using Azure SQL Database 2014-04-01 APIs and those APIs are retiring but it has no indication on how to find the resources that are using that API.

How can I find the resources that are using Azure SQL Database 2014-04-01 APIs?

  1. SAI JAGADEESH KUDIPUDI 3,470 Reputation points β€’ Microsoft External Staff β€’ Moderator

    Hi @Ryan Brown ,

    Thanks for your question. I understand you’d like to identify which resources or applications are currently using your Azure SQL Database.

    At the moment, Azure does not provide a direct β€œdependency view” that shows all resources consuming a specific Azure SQL Database. However, you can reliably determine this by leveraging monitoring logs and auditing features.

    1. Enable Azure SQL Auditing
      • Azure SQL Auditing captures database events such as logins, queries, and access patterns.
      • These logs help you identify:
      • Client IP addresses
      • Application names
      • Login users and access times
    2. Use Azure Monitor / Log Analytics
      • Once auditing or diagnostic logs are enabled, you can query them using KQL to analyze connections and activity.
      • Azure Monitor collects and aggregates logs and metrics across resources, giving visibility into usage and health.
    3. Analyze connection activity
      • By querying logs (for example, audit logs or AzureDiagnostics), you can identify:
      • Which clients are connecting
      • Frequency of access
      • Application-level usage patterns
      This is the most practical way to trace unknown or legacy dependencies.

    If you’re planning to decommission a database, consider enabling auditing/logs for a period of time and monitoring activity to ensure no active consumers are missed.

    There is no single built-in feature that lists all dependent resources for Azure SQL Database. The recommended and supported approach is to use Auditing + Azure Monitor (Log Analytics) to track and analyze connection activity, which helps you identify all active consumers.

    Microsoft reference Links:

    Auditing for Azure SQL Database (Microsoft Docs) [learn.microsoft.com]
    Monitor Azure SQL Database with Azure Monitor [learn.microsoft.com]

    Hope this helps. If you have any follow-up questions, please let me know. I would be happy to help.

  2. Ryan Brown 40 Reputation points

    No, I am not trying to see what is using our database. How can I find the resources that are using Azure SQL Database 2014-04-01 APIs?

  3. Pilladi Padma Sai Manisha 10,190 Reputation points β€’ Microsoft External Staff β€’ Moderator

    Hi Ryan,

    Thank you for the clarification.

    The Azure Resource Graph query that has been shared checks the API version recorded in resource definitions. If the query returns no results, it indicates that there are no currently deployed Azure SQL resources in your subscription that are defined with API version 2014-04-01.

    However, the retirement notification is generally triggered when the Azure SQL Resource Provider detects management-plane requests using the deprecated API version. These requests can originate from automation scripts, ARM/Bicep templates, Terraform deployments, Azure DevOps pipelines, Azure Automation runbooks, SDKs, PowerShell modules, Azure CLI commands, or custom applications that interact with Azure SQL management endpoints.

    At present, Azure does not provide a self-service report, Resource Graph query, or portal experience that directly maps the retirement notification to the specific caller or resource responsible for the deprecated API usage.

    Given that the Resource Graph query returns no matches, the recommended next step is to review any tooling or automation used to provision, configure, or manage Azure SQL resources and search for references to api-version=2014-04-01. It is also worth ensuring that any Azure SDKs, PowerShell modules, CLI installations, and Infrastructure-as-Code templates are updated to supported versions.

    For reference:

    If you are unable to identify the source after reviewing your management tooling, please let us know. We can help determine whether additional investigation is needed to identify the caller associated with the retirement notification.

  4. Ryan Brown 40 Reputation points

    The only thing I know of outside of our Visual Studio Projects that are accessing the Azure Sql db are Runbooks but those don't specify an api version.

    It just doesn't make any sense. Microsoft sends me an email saying I am using the old API and it is going to get turned off but they are not going to tell me where I am using it.

  5. Erland Sommarskog 134.7K Reputation points β€’ MVP β€’ Volunteer Moderator

    Well, Microsoft can only see that you are using - or that you at one point used - the old APIs. But they have no knowledge what that might be. Assuming that those runbooks are truly antique, I don't think you have any reason to worry about the API change.


Sign in to comment

Answer accepted by question author

SAI JAGADEESH KUDIPUDI 3,470 Reputation points β€’ Microsoft External Staff β€’ Moderator

Hi @Ryan Brown ,
Thank you for your question and for following up on this.

We understand your concern about identifying which resources might be using the Azure SQL Database 2014‑04‑01 API, especially in light of the retirement notification.

Based on the investigation and clarification:

  • The email notification you received is a broad informational alert sent to all subscriptions that have the Microsoft.Sql resource provider registered, not specifically because a particular resource is actively using the deprecated API.
  • For Azure SQL Database, most operations performed through Azure services (such as the Azure Portal, Azure CLI, or PowerShell) automatically use updated API versions, so customers do not need to manually track or upgrade these.

From the backend validation:

  • We identified only a single call referencing the older API version, and this was triggered via the Azure Portal.
  • Since this is a platform-managed operation, it will be automatically updated by Microsoft, and no manual action is required.

At this point, there is no indication of active usage of the deprecated API through customer-managed scripts, templates, or third-party tools. The observed usage is platform-driven and will be handled automatically.Your Azure SQL resources will continue to function normally without impact.

Hope this helps. If you have any follow-up questions, please let me know. I would be happy to help.

0 comments No comments

Sign in to comment

1 additional answer

  1. Marcin Policht 92,630 Reputation points β€’ MVP β€’ Volunteer Moderator

    Refer to https://stackoverflow.com/questions/79407552/azure-sql-database-2014-04-01-apis-will-be-retired-on-31-october-2025

    You can get it from Azure Resource Graph Explorer.

    Resources
    | where type =~ 'microsoft.sql/servers/databases'
    | where apiVersion contains '2014-04-01'
    

    Alternatively, you can also use az cli:

    az graph query -q "Resources | where type =~ 'microsoft.sql/servers/databases' | where apiVersion contains '2014-04-01'"
    

    It comes up empty for me but works if I change the api version.

    Source: https://learn.microsoft.com/en-us/azure/governance/resource-graph/samples/advanced?tabs=azure-cli

    Also what for example are the templates, tools, scripts, or programs, that also need to be upgraded?

    This one has been answered by Azure Support here. I'll paste the response below.

    Consider the following restAPI example to Create or Update a database: https://learn.microsoft.com/en-us/rest/api/sql/databases/create-or-update If you look a the top left had corner on this page you can see a drop down list with the following versions:

    2023-05-01-preview
    2021-11-01
    2014-04-01
    

    Selecting each one will give you a modified version of the restAPI command to create or update database

    Selecting "2014-04-01" will give you the below:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=**2014-04-01**
    

    Selecting "2021-11-01" will give you the below:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=**2021-11-01**
    

    Note the last part of both PUT statements have different versions. So the Alert from MS is saying that if your app or script developers have used the older (2014) API version, they need to upgrade this to the newer (2021) API version. Hope this adds some more context.


    If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.

    hth

    Marcin

    1. Ryan Brown 40 Reputation points

      Thank you but no, that did not help. When I run the queries I don't get any results back yet I do get an email from Microsoft that I have resources affected.

    2. Erland Sommarskog 134.7K Reputation points β€’ MVP β€’ Volunteer Moderator

      I would say that if Marcin's queries did not return anything, chances are good that you can ignore this mail. I know that I have gotten it on several occasions, and I know that I don't have any such resources. But maybe that I played with them at some occasion. And if I did, how would Microsoft know if I would never use that old Powershell script or what it might have been again?

      I did not get this mail this time round, but I think I know why: I had to move my resources to a new subscription, and the records of having used those old APIs were with the subscription and not the resources themselves.


    Sign in to comment
Sign in to answer

Your answer