TMAegis
More rules for mssql

Microsoft SQL Server

TMA-MSSQL2022-2.16

Ensure no login exists with the name 'sa'

MediumLevel 1Automatedmssql

Description

The sa login (e.g. principal) is a widely known and often widely used SQL Server account. Therefore, there should not be a login called sa even when the original sa login (principal_id = 1) has been renamed. Enforcing this control reduces the probability of an attacker executing brute force attacks against a well-known principal name.

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 name = 'sa';"
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

Execute the appropriate ALTER statement below based on the principal_id returned for the login named sa. Replace the <different_name> value within the below syntax and execute to rename the sa login. USE [master] GO -- If principal_id = 1 or the login owns database objects, rename the sa login ALTER LOGIN [sa] WITH NAME = <different_name>; GO

Properties

Operating systems
Any
Tags
loggingmssqlsqlserver-2022
Reference
CIS Microsoft SQL Server 2022 Benchmark v1.3.0 - 2.16 Ensure no login exists with the name 'sa'

Check this host

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

shell
tmaegis scan --target mssql