TMAegis
More rules for mssql

TMA-MSSQL-3.10

Ensure Windows local groups are not SQL Logins

MediumLevel 1Automatedmssql

Description

Local Windows groups should not be used as logins for SQL Server instances. Default: By default, no local groups are added as SQL logins. 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 pr JOIN sys.server_permissions pe ON pr.principal_id = pe.grantee_principal_id WHERE pr.type_desc = 'WINDOWS_GROUP' AND pr.name LIKE CAST(SERVERPROPERTY('MachineName') AS nvarchar(128)) + '%';"
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

1. For each LocalGroupName login, if needed create an equivalent AD group containing only the required user accounts. 2. Add the AD group or individual Windows accounts as a SQL Server login and grant it the permissions required. 3. Drop the LocalGroupName login using the syntax below after replacing <name>. USE [master] GO DROP LOGIN [<name>] GO

Properties

Operating systems
Any
Tags
mssqldatabaseprivileges
Reference
CIS Microsoft SQL Server 2025 Benchmark v1.0.0 - 3.10 Ensure Windows local groups are not SQL Logins

Check this host

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

shell
tmaegis scan --target mssql