TMA-MSSQL-3.10
Ensure Windows local groups are not SQL Logins
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
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.
tmaegis scan --target mssql