Back to Checks
Cloud SQL SQL Server instance has the 'user connections' database flag set to 0
cloudsql_instance_sqlserver_user_connections_flag
Service: cloudsqlSeverity: medium
OfficialBuilt-inVerified
Categories:resilience
Resource Type:sqladmin.googleapis.com/Instance
Cloud SQL for SQL Server instances are evaluated to ensure the user connections database flag is set to 0 (unlimited), avoiding any artificial cap on concurrent user sessions
Risk
A capped user connections value can exhaust available sessions, causing login failures, aborted transactions, and timeouts. This reduces availability, can delay administrative access, and may lead to integrity issues from failed or inconsistent retries under load.
Run this check with Prowler
Run in Prowler CloudRun
prowler gcp --checks cloudsql_instance_sqlserver_user_connections_flagRecommendation
Set user connections to 0 to prevent artificial limits. Preserve availability with connection pooling, controlled retries, and capacity planning based on peak usage. If a cap is required, size it with ample headroom, monitor connection counts, and review regularly.
Remediation
CLI
gcloud sql instances patch <example_resource_name> --database-flags='"user connections"=0'Terraform
resource "google_sql_database_instance" "<example_resource_name>" {
name = "<example_resource_name>"
region = "<region>"
database_version = "SQLSERVER_2019_STANDARD"
settings {
tier = "db-custom-1-3840"
# Critical: ensure the 'user connections' flag is set to 0 to pass the check
database_flags {
name = "user connections" # Critical line: target flag
value = "0" # Critical line: set to 0
}
}
}Other
1In Google Cloud Console, go to Cloud SQL > Instances
2Open the SQL Server instance <example_resource_name> and click Edit
3In Database flags, click Add item, select "user connections", set value to 0
4Click Save (the instance may restart)
Check Code
from prowler.lib.check.models import Check, Check_Report_GCP
from prowler.providers.gcp.services.cloudsql.cloudsql_client import cloudsql_client
class cloudsql_instance_sqlserver_user_connections_flag(Check):
def execute(self) -> Check_Report_GCP:
findings = []
for instance in cloudsql_client.instances:
if "SQLSERVER" in instance.version:
report = Check_Report_GCP(metadata=self.metadata(), resource=instance)
report.status = "PASS"
report.status_extended = f"SQL Server Instance {instance.name} has 'user connections' flag set to '0'."
for flag in instance.flags:
if (
flag.get("name", "") == "user connections"
and flag.get("value", "0") != "0"
):
report.status = "FAIL"
report.status_extended = f"SQL Server Instance {instance.name} does not have 'user connections' flag set to '0'."
break
findings.append(report)
return findings