TMA-MSSQL2022-3.10
Ensure Windows local groups are not SQL Logins
Description
Local Windows groups should not be used as logins for SQL Server instances. Allowing local Windows groups as SQL Logins provides a loophole whereby anyone with OS level administrator rights (and no SQL Server rights) could add users to the local Windows groups and thereby give themselves or others access to the SQL Server instance.
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
- loggingmssqlsqlserver-2022
- Reference
- CIS Microsoft SQL Server 2022 Benchmark v1.3.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