TMA-MSSQL-2.2
Ensure 'CLR Enabled' Server Configuration Option is set to '0'
MediumLevel 1Automatedmssql
Description
The clr enabled option specifies whether user assemblies can be run by SQL Server. Per the benchmark this is not applicable (reported compliant) when 'clr strict security' is 1 for both value and value_in_use; otherwise 'clr enabled' must be 0. Default: By default, this option is disabled (0). Runs one sqlcmd query with its defaults (Windows authentication to the local default instance); set SQLCMDSERVER, SQLCMDUSER and SQLCMDPASSWORD for another instance or SQL authentication. Needs VIEW SERVER STATE / sysadmin-level read access.
How it is checked
Audit method: SQL query
sql_query
sqlcmd -b -h -1 -W -Q "SET NOCOUNT ON; SELECT CASE WHEN EXISTS (SELECT 1 FROM sys.configurations WHERE name = 'clr strict security' AND CAST(value AS int) = 1 AND CAST(value_in_use AS int) = 1) OR EXISTS (SELECT 1 FROM sys.configurations WHERE name = 'clr enabled' AND CAST(value AS int) = 0 AND CAST(value_in_use AS int) = 0) THEN 'compliant' ELSE 'noncompliant' END;"- Expected output
compliant
How it is fixed
Fix method: SQL statement
shell
sqlcmd -b -h -1 -W -Q "SET NOCOUNT ON; EXEC sp_configure 'clr enabled', 0; RECONFIGURE;"Properties
- Operating systems
- Any
- Tags
- mssqldatabasesurface-areaclr
- Reference
- CIS Microsoft SQL Server 2025 Benchmark v1.0.0 - 2.2 Ensure 'CLR Enabled' Server Configuration Option is set to '0'
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target mssql