Check ID: sqlserver_va_periodic_recurring_scans_enabled
Provider: Azure
Service: sqlserver
Severity: MEDIUM
Categories: vulnerabilities
Resource type: microsoft.sql/servers

What this check verifies

Azure SQL servers are evaluated for Vulnerability Assessment configuration and whether periodic recurring scans are scheduled (e.g., weekly) for the server and its databases. Servers with Vulnerability Assessment missing or scans not scheduled are identified.

Risk

Without scheduled scans, new misconfigurations and vulnerable settings can persist unnoticed, weakening confidentiality and integrity. Attackers can exploit stale permissions, unsafe firewall rules, or unpatched features to read or alter data and pivot to other resources.

Recommendation

Enable recurring Vulnerability Assessment scans at server scope and ensure results are retained securely (express configuration or secured storage). Apply least privilege, maintain baselines, and promptly remediate findings. Automate alerting and periodic reviews as part of defense in depth and change management.

Remediation

az rest --method put --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Sql/servers/<SERVER_NAME>/vulnerabilityAssessments/Default?api-version=2023-08-01-preview --body '{"properties":{"storageContainerPath":"https://<STORAGE_ACCOUNT>.blob.core.windows.net/<CONTAINER>/","storageAccountAccessKey":"<ACCESS_KEY>","recurringScans":{"isEnabled":true}}}'

References

Where this check fires

This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable by Check ID = sqlserver_va_periodic_recurring_scans_enabled. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks