Check ID: sqlserver_auditing_enabled
Provider: Azure
Service: sqlserver
Severity: HIGH
Categories: logging
Resource type: microsoft.sql/servers

What this check verifies

Azure SQL Server auditing is assessed at the server level to confirm audit logging is active. Configurations with any auditing policy state set to Disabled indicate auditing is not configured for the server and its databases.

Risk

Without SQL auditing, visibility into logins, privilege changes, and query activity is lost. Stealthy data exfiltration and tampering can go undetected, impacting confidentiality and integrity. Absent audit trails hinder forensics, slow incident response, and weaken compliance evidence.

Recommendation

Enable server-level auditing and send logs to a centralized, tamper-resistant store with defined retention. Enforce least privilege and separation of duties for log access, integrate with monitoring for alerts, and periodically validate coverage. Use database-level auditing only for specific exceptions.

Remediation

az sql server audit-policy update —resource-group <RESOURCE_GROUP_NAME> —name <SERVER_NAME> —state Enabled —storage-account <STORAGE_ACCOUNT_NAME>

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_auditing_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