TMAegis
More rules for mssql

TMA-MSSQL2022-2.15

Ensure 'AUTO_CLOSE' is set to 'OFF' on contained databases

LowLevel 1Automatedmssql

Description

AUTO_CLOSE determines if a given database is closed or not after a connection terminates. If enabled, subsequent connections to the given database will require the database to be reopened and relevant procedure caches to be rebuilt. Because authentication of users for contained databases occurs within the database not at the server\instance level, the database must be opened every time to authenticate a user. The frequent opening/closing of the database consumes additional server resources and may contribute to a denial of service.

How it is checked

Audit method: SQL query

sql_query
sqlcmd -b -h -1 -W -Q "SET NOCOUNT ON; SELECT COUNT(*) FROM sys.databases WHERE containment <> 0 AND is_auto_close_on = 1;"
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

Execute the following T-SQL, replacing <database_name> with each database name found by the Audit Procedure: ALTER DATABASE <database_name> SET AUTO_CLOSE OFF;

Properties

Operating systems
Any
Tags
mssqlsqlserver-2022
Reference
CIS Microsoft SQL Server 2022 Benchmark v1.3.0 - 2.15 Ensure 'AUTO_CLOSE' is set to 'OFF' on contained databases

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target mssql