Classic configuration vulnerability findings in Microsoft Defender for Cloud
In brief
The documentation now states that APIs for classic vulnerability assessment configuration, along with classic Defender for SQL Advanced Threat Protection APIs, will be retired on August 16, 2027. It links to migration guidance.
What Defender admins need to know
Administrators using these APIs should migrate before the retirement date to avoid disruption.
Summaries are generated from the documentation change itself.
Documentation change
The comparison below shows only the changed extract. Use the full-page view for complete context.
Classic configuration vulnerability findings
in Microsoft Defender for Cloud provides
This article shows you how to view, remediate, and disable SQL vulnerability assessment findings when you use the classic configuration in Microsoft Defender for Cloud. You can review scan history, disable specific findings, and manage vulnerability assessments programmatically by using PowerShell, Azure CLI, or Resource Manager templates. For an overview of vulnerability assessments, see SQL vulnerability assessment.
Prerequisites
First, check whether you use the express or classic configuration.
To determinefind your configuration:configuration type:
In the Azure portal, open
the specificyour resource in Azure SQL Database, Azure SQL Managed Instance, or Azure Synapse.Under
theSecurity, select Defender for Cloud.In Enablement Status, select Configure to open the
Microsoft Defender forSQLsettings,settings for theentire server,server or managed instance.
If the vulnerability settings show theyou see an option to configureset up a storage account, you're using use the classic configuration. Otherwise,If you don're usingt see a storage account option, you use the express configuration.
View scan history
Select Scan History in the vulnerability assessment pane to view previously run scans for the database.
DisableExempt specific findings from Microsoft Defender for Cloud (preview)
(recommendations)
IfNot all SQL VA findings might be relevant to your organization or configuration, and you needmight choose to ignore a finding rather than remediate it,them regardless of their status. To do this, you can disable it. Disabled findings don't affectcreate an exemption at the subscription or management group level so the recommendation no longer affects your secure score or generate noise.compliance for that scope.
You can manage vulnerability assessments programmatically by using Azure PowerShell, Azure CLI, or Resource Manager templates. This article uses the Azure Az PowerShell module, which is the PowerShell module for interacting with Azure. To get started with the Az PowerShell module, see Install Azure PowerShell.
| Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting | Updates the vulnerability assessment settings of a managed database. |
| Update-AzSqlInstanceVulnerabilityAssessmentSetting | Updates the vulnerability assessment settings of a managed instance. |
For a PowerShell script The You can use Azure CLI commands to manage your vulnerability assessments programmatically. The supported commands are:
|:-|:-|
| To configure vulnerability assessment baselines using Azure Resource Manager templates, use the Ensure you have enabled When a finding matches your disable rules criteria, it doesn't appear in
findings list. Typical scenarios might include:Disable findings with medium or lower severity.selected scope.Disable findings that are nonpatchable.Disable findings from benchmarks that aren't of interest for a defined scope.Creating an exemption requires specific permissions.
Disabled findings are still included in the weekly SQL vulnerability assessment email report.Disabled rules appear in the 'Not applicable' section of the scan results.Disable a ruleDefender for Cloud provides a way to disable specific findings.To disable a rule:Sign in to the Azure portal.Navigate to Microsoft Defender for Cloud > Recommendations.Search for and select Vulnerability assessment findings on your SQL servers on machines should be remediated.Select Disable rule.Select the scope.Define your criteria. You can use the following criteria:Finding IDSeverityBenchmarks :::image type="content" source="media/defender-for-sql-Azure-vulnerability-assessment/disable-rule-vulnerability-findings-sql.png" alt-text="Screenshot showing the disable rule creation form with Finding ID, Severity, and Benchmarks filter options for SQL server vulnerability assessment findings.":::Select Apply rule.Changes can take up to 24 hours to take effect.View, override, or delete a ruleTo view, override, or delete a rule:Select Disable rule.From the scope list, subscriptions with active rules show as Rule applied.:::image type="content" source="media/defender-for-sql-Azure-vulnerability-assessment/modify-rule.png" alt-text="Screenshot showing the rule scope list with Rule applied status and an ellipsis menu button to view or delete existing disable rules.":::To view or delete the rule, select the ellipsis menu ("...").Manage vulnerability assessments programmatically
Manage vulnerability assessments with Azure PowerShell
example,example that runs Azure SQL vulnerability assessments, see Azure SQL vulnerability assessment PowerShell support.
Manage vulnerability assessments with Azure CLI
az security va sql command group uses the unified Microsoft Security SQL vulnerability assessment API. Use the resource ID to target Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, SQL Server on Azure Virtual Machines, or an Arc-enabled SQL Server. For server-level resources, also specify the database name where required.
az security va sql baseline delete | Delete SQL vulnerability assessment rule baseline. |
| az security va sql baseline list | View SQL vulnerability assessment baseline for all rules. |
| az security va sql baseline setaz security va sql baseline add | Sets SQL vulnerability assessmentSet baselines from the latest scan or from results supplied as JSON. This operation replaces the existing baseline. Replaces the current baseline.The deprecated baseline set command redirects to this operation. |
| az security va sql baseline show | View SQL vulnerability assessment rule baseline. |
| az security va sql baseline update | Update SQL vulnerability assessment rule baseline. Replaces the current rule baseline. |
| az security va sql results list | View all SQL vulnerability assessment scan results. |
| az security va sql scans list | List all SQL vulnerability assessment scan summaries. |
| az security va sql scans show | View SQL vulnerability assessment scan summaries. |
Manage vulnerability assessments with Resource Manager templates
Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines type.vulnerabilityAssessments before you add baselines.Here's an example thatThe following ARM template snippet defines Baseline Rulevulnerability assessment baseline resources for rules VA2065 forand VA1143 in the master database and VA1143 for the user database as resources in a Resource Manager template:databases: "resources": [
- Master database - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/<b>master</b>')]",
- User database - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/<b>default</b>')]",
To handle Boolean types as true/false, set the baseline result with binary input like "1"/"0". The following example shows a baseline resource that uses a binary value for rule VA1143:
```json
{
## Related content
- [Microsoft Defender for Azure SQL](defender-for-sql-introduction.md)
- [Data discovery and classification for Azure SQL]classification](/azure/azure-sql/database/data-discovery-and-classification-overview)
- [Store vulnerability assessment scan results in a storage account behind firewalls and VNets](/azure/azure-sql/database/sql-database-vulnerability-assessment-storage)
- [Common questions about Azure SQL databases](faq-defender-for-databases.yml)
@@ -1,101 +1,60 @@ ----title: Classic configuration vulnerability findings+title: Classic configuration vulnerability findings in Microsoft Defender for Cloud description: Learn how to remediate software vulnerabilities and disable findings with the classic configuration.-ms.date: 05/26/2026+ms.date: 08/07/2026 ms.service: defender-for-cloud ms.topic: how-to+ms.custom: msecd-doc-authoring-1013 #customer intent: As a security administrator, I want to manage SQL vulnerability findings in the classic configuration so I can remediate risks and suppress accepted findings. ai-usage: ai-assisted --- -# Classic configuration vulnerability findings+# Classic configuration vulnerability findings in Microsoft Defender for Cloud -Microsoft Defender for Cloud provides [vulnerability assessments](sql-azure-vulnerability-assessment-overview.md) for your Azure SQL databases. Scans identify software vulnerabilities and return findings. You can remediate vulnerabilities or disable findings when needed.+This article shows you how to view, remediate, and disable SQL vulnerability assessment findings when you use the classic configuration in Microsoft Defender for Cloud. You can review scan history, disable specific findings, and manage vulnerability assessments programmatically by using PowerShell, Azure CLI, or Resource Manager templates. For an overview of vulnerability assessments, see [SQL vulnerability assessment](sql-azure-vulnerability-assessment-overview.md). > [!IMPORTANT]-> Express Configuration is generally available for Azure SQL Managed Instance and Azure Synapse Analytics Workspaces. This extends the generally available Microsoft-managed experience for Azure SQL Database, at no additional cost.+> The APIs used for classic vulnerability assessment configuration will be retired on **August 16, 2027**, together with the classic Defender for SQL Advanced Threat Protection APIs. For migration guidance, see [Prepare for the retirement of classic Defender for SQL APIs](migrate-classic-defender-for-sql-apis.md).++> [!IMPORTANT]+> Express Configuration is now available for Azure SQL Managed Instance and Azure Synapse Analytics Workspaces. Express Configuration extends the Microsoft-managed setup for Azure SQL Database at no extra cost. > -> This release allows you to enable SQL VA without configuring a customer-managed storage account. Express Configuration is the recommended enablement mode and provides the same security value as Classic Configuration with a simplified setup.+> Express Configuration lets you enable SQL VA without a storage account. Express Configuration is the recommended mode. It offers the same security value as Classic Configuration with a simpler setup. >-> A unified REST API (v2026-04-01-preview) manages SQL VA consistently across Azure SQL Database, SQL Managed Instance, Synapse Workspaces, and SQL on machines (Azure VM and Arc-enabled SQL).+> A unified REST API (v2026-04-01-preview) manages SQL VA across Azure SQL Database, SQL Managed Instance, Synapse Workspaces, and SQL on machines (Azure VM and Arc-enabled SQL). ## Prerequisites -Before continuing, confirm whether you're using the [express or classic configuration models](sql-azure-vulnerability-assessment-overview.md#configuration-models).+First, check whether you use the [express or classic configuration](sql-azure-vulnerability-assessment-overview.md#configuration-models). -To determine your configuration:+To find your configuration type: -1. In the [Azure portal](https://portal.azure.com), open the specific resource in Azure SQL Database, Azure SQL Managed Instance, or Azure Synapse.+1. In the [Azure portal](https://portal.azure.com), open your resource in Azure SQL Database, Azure SQL Managed Instance, or Azure Synapse. -1. Under the **Security**, select **Defender for Cloud**.+1. Under **Security**, select **Defender for Cloud**. -1. In **Enablement Status**, select **Configure** to open the Microsoft Defender for SQL settings, for the entire server, or managed instance.+1. In **Enablement Status**, select **Configure** to open the SQL settings for the server or managed instance. -If the vulnerability settings show the option to configure a storage account, you're using the classic configuration. Otherwise, you're using the express configuration.+If you see an option to set up a storage account, you use the classic configuration. If you don't see a storage account option, you use the express configuration. ## View scan history Select **Scan History** in the vulnerability assessment pane to view previously run scans for the database. -### Disable specific findings from Microsoft Defender for Cloud (preview)--If you need to ignore a finding rather than remediate it, you can disable it. Disabled findings don't affect your secure score or generate noise.--When a finding matches your disable rules criteria, it doesn't appear in the findings list. Typical scenarios might include:--- Disable findings with medium or lower severity.-- Disable findings that are nonpatchable.-- Disable findings from benchmarks that aren't of interest for a defined scope.--> [!IMPORTANT]->-- To disable specific findings, you need permission to edit a policy in Azure Policy. For required roles, see [Azure RBAC permissions in Azure Policy](/azure/governance/policy/overview#azure-rbac-permissions-in-azure-policy).-> - Disabled findings are still included in the weekly SQL vulnerability assessment email report.-> - Disabled rules appear in the 'Not applicable' section of the scan results.--## Disable a rule--Defender for Cloud provides a way to disable specific findings.--To disable a rule:--1. Sign in to the [Azure portal](https://portal.azure.com).--1. Navigate to **Microsoft Defender for Cloud** > **Recommendations**.--1. Search for and select **Vulnerability assessment findings on your SQL servers on machines should be remediated**.+## Exempt specific findings (recommendations) -1. Select **Disable rule**.+Not all SQL VA findings might be relevant to your organization or configuration, and you might choose to ignore them regardless of their status. To do this, you can [create an exemption](/azure/defender-for-cloud/exempt-resource) at the subscription or management group level so the recommendation no longer affects your secure score or compliance for that scope. -1. Select the scope.--1. Define your criteria. You can use the following criteria:-- - Finding ID- - Severity- - Benchmarks-- :::image type="content" source="media/defender-for-sql-Azure-vulnerability-assessment/disable-rule-vulnerability-findings-sql.png" alt-text="Screenshot showing the disable rule creation form with Finding ID, Severity, and Benchmarks filter options for SQL server vulnerability assessment findings.":::--1. Select **Apply rule**.--Changes can take up to 24 hours to take effect.--## View, override, or delete a rule--To view, override, or delete a rule:--1. Select **Disable rule**.--1. From the scope list, subscriptions with active rules show as **Rule applied**.-- :::image type="content" source="media/defender-for-sql-Azure-vulnerability-assessment/modify-rule.png" alt-text="Screenshot showing the rule scope list with Rule applied status and an ellipsis menu button to view or delete existing disable rules.":::--1. To view or delete the rule, select the ellipsis menu ("...").+> [!NOTE]+> - The exemption setup succeeds, but it will not take effect unless the **["Azure CSPM" standard is assigned](/azure/defender-for-cloud/assign-regulatory-compliance-standards)** on the selected scope.+> - Creating an exemption requires [specific permissions](/azure/defender-for-cloud/exempt-resource#prerequisites). ## Manage vulnerability assessments programmatically -### Azure PowerShell+You can manage vulnerability assessments programmatically by using Azure PowerShell, Azure CLI, or Resource Manager templates.++<a name="azure-powershell"></a>+### Manage vulnerability assessments with Azure PowerShell > [!NOTE] > This article uses the Azure Az PowerShell module, which is the PowerShell module for interacting with Azure. To get started with the Az PowerShell module, see [Install Azure PowerShell](/powershell/azure/install-azure-powershell).@@ -125,12 +84,13 @@ You can use Azure PowerShell cmdlets to manage your vulnerability assessments pr | [Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting](/powershell/module/az.sql/Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting) | Updates the vulnerability assessment settings of a managed database. | | [Update-AzSqlInstanceVulnerabilityAssessmentSetting](/powershell/module/az.sql/Update-AzSqlInstanceVulnerabilityAssessmentSetting) | Updates the vulnerability assessment settings of a managed instance. | -For a script example, see [Azure SQL vulnerability assessment PowerShell support](/archive/blogs/sqlsecurity/azure-sql-vulnerability-assessment-now-with-powershell-support).+For a PowerShell script example that runs Azure SQL vulnerability assessments, see [Azure SQL vulnerability assessment PowerShell support](/archive/blogs/sqlsecurity/azure-sql-vulnerability-assessment-now-with-powershell-support). -### Azure CLI+<a name="azure-cli"></a>+### Manage vulnerability assessments with Azure CLI > [!IMPORTANT]-> The following Azure CLI commands are for SQL databases hosted on VMs or on-premises machines. For vulnerability assessments regarding Azure SQL Databases, refer to the Azure portal or PowerShell section.+> The `az security va sql` command group uses the unified Microsoft Security SQL vulnerability assessment API. Use the resource ID to target Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, SQL Server on Azure Virtual Machines, or an Arc-enabled SQL Server. For server-level resources, also specify the database name where required. You can use Azure CLI commands to manage your vulnerability assessments programmatically. The supported commands are: @@ -138,7 +98,7 @@ You can use Azure CLI commands to manage your vulnerability assessments programm |:-|:-| | [`az security va sql baseline delete`](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-delete) | Delete SQL vulnerability assessment rule baseline. | | [`az security va sql baseline list`](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-list) | View SQL vulnerability assessment baseline for all rules. |-| [`az security va sql baseline set`](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-set) | Sets SQL vulnerability assessment baseline. Replaces the current baseline. |+| [`az security va sql baseline add`](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-add) | Set baselines from the latest scan or from results supplied as JSON. This operation replaces the existing baseline. The deprecated `baseline set` command redirects to this operation. | | [`az security va sql baseline show`](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-show) | View SQL vulnerability assessment rule baseline. | | [`az security va sql baseline update`](/cli/azure/security/va/sql/baseline#az-security-va-sql-baseline-update) | Update SQL vulnerability assessment rule baseline. Replaces the current rule baseline. | | [`az security va sql results list`](/cli/azure/security/va/sql/results#az-security-va-sql-results-list) | View all SQL vulnerability assessment scan results. |@@ -146,13 +106,14 @@ You can use Azure CLI commands to manage your vulnerability assessments programm | [`az security va sql scans list`](/cli/azure/security/va/sql/scans#az-security-va-sql-scans-list) | List all SQL vulnerability assessment scan summaries. | | [`az security va sql scans show`](/cli/azure/security/va/sql/scans#az-security-va-sql-scans-show) | View SQL vulnerability assessment scan summaries. | -### Resource Manager templates+<a name="resource-manager-templates"></a>+### Manage vulnerability assessments with Resource Manager templates To configure vulnerability assessment baselines using Azure Resource Manager templates, use the `Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines` type. Ensure you have enabled `vulnerabilityAssessments` before you add baselines. -Here's an example that defines Baseline Rule VA2065 for the `master` database and VA1143 for the `user` database as resources in a Resource Manager template:+The following ARM template snippet defines vulnerability assessment baseline resources for rules VA2065 and VA1143 in the `master` and `user` databases: ```json "resources": [@@ -204,7 +165,7 @@ For `master` database and `user` database, the resource names are defined differ - Master database - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/<b>master</b>')]", - User database - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/<b>default</b>')]", -To handle Boolean types as true/false, set the baseline result with binary input like "1"/"0".+To handle Boolean types as true/false, set the baseline result with binary input like "1"/"0". The following example shows a baseline resource that uses a binary value for rule VA1143: ```json {@@ -229,6 +190,6 @@ To handle Boolean types as true/false, set the baseline result with binary input ## Related content - [Microsoft Defender for Azure SQL](defender-for-sql-introduction.md)-- [Data discovery and classification for Azure SQL](/azure/azure-sql/database/data-discovery-and-classification-overview)-- [Store vulnerability assessment scan results in a storage account behind firewalls and VNets](/azure/azure-sql/database/sql-database-vulnerability-assessment-storage)+- [Data discovery and classification](/azure/azure-sql/database/data-discovery-and-classification-overview)+- [Store scan results behind firewalls and VNets](/azure/azure-sql/database/sql-database-vulnerability-assessment-storage) - [Common questions about Azure SQL databases](faq-defender-for-databases.yml) 