Back to Checks
iac

Auditing should be enabled on Azure SQL Databases

AZU-0027
Service: databaseSeverity: medium
OfficialBuilt-inVerified

Auditing helps you maintain regulatory compliance, understand database activity, and gain insight into discrepancies and anomalies that could indicate business concerns or suspected security violations.

Run this check with Prowler

Run in Prowler Cloud
Run
prowler iac --checks AZU-0027

Recommendation

Enable auditing on Azure SQL databases

Check Code

# METADATA
# title: Auditing should be enabled on Azure SQL Databases
# description: |
#   Auditing helps you maintain regulatory compliance, understand database activity, and gain insight into discrepancies and anomalies that could indicate business concerns or suspected security violations.
# scope: package
# schemas:
#   - input: schema["cloud"]
# related_resources:
#   - https://docs.microsoft.com/en-us/azure/azure-sql/database/auditing-overview
# custom:
#   id: AZU-0027
#   long_id: azure-database-enable-audit
#   aliases:
#     - AVD-AZU-0027
#     - enable-audit
#     - azure-database-enable-audit
#   provider: azure
#   service: database
#   severity: MEDIUM
#   recommended_action: Enable auditing on Azure SQL databases
#   input:
#     selector:
#       - type: cloud
#         subtypes:
#           - service: database
#             provider: azure
#   examples: checks/cloud/azure/database/enable_audit.yaml
package builtin.azure.database.azure0027

import rego.v1

deny contains res if {
	some server in input.azure.database.mssqlservers
	isManaged(server)
	not policies_is_configured(server)
	res := result.new(
		"Server does not have an extended audit policy configured.",
		server,
	)
}

policies_is_configured(server) := count(server.extendedauditingpolicies) > 0