TMAegis
More rules for mssql

TMA-MSSQL-2.13

Ensure the 'sa' Login Account is set to 'Disabled'

HighLevel 1Automatedmssql

Description

The sa account is a widely known and often widely used SQL Server account with sysadmin privileges. This is the original login created during installation and always has the principal_id=1 and sid=0x01. Checks the original sa login by SID 0x01 so a renamed sa is still found. Default: By default, the sa login account is disabled at install time when Windows Authentication Mode is selected. If mixed mode (SQL Server and Windows Authentication) is selected at install, the ... 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 COUNT(*) FROM sys.server_principals WHERE sid = 0x01 AND is_disabled = 0;"
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

Confirm no application or job uses the sa login (SID 0x01), then run: USE [master]; DECLARE @tsql nvarchar(max) = 'ALTER LOGIN ' + QUOTENAME(SUSER_NAME(0x01)) + ' DISABLE'; EXEC (@tsql);

Properties

Operating systems
Any
Tags
mssqldatabaseauthentication
Reference
CIS Microsoft SQL Server 2025 Benchmark v1.0.0 - 2.13 Ensure the 'sa' Login Account is set to 'Disabled'

Check this host

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

shell
tmaegis scan --target mssql