TMA-MSSQL2022-2.15
Ensure 'AUTO_CLOSE' is set to 'OFF' on contained databases
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
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.
tmaegis scan --target mssql