|
320 | 320 | ); |
321 | 321 | CREATE CLUSTERED INDEX IX_CheckID_DatabaseName ON #SkipChecks(CheckID, DatabaseName); |
322 | 322 |
|
| 323 | + IF(OBJECT_ID('tempdb..#InvalidLogins') IS NOT NULL) |
| 324 | + BEGIN |
| 325 | + EXEC sp_executesql N'DROP TABLE #InvalidLogins;'; |
| 326 | + END; |
| 327 | + |
| 328 | + CREATE TABLE #InvalidLogins ( |
| 329 | + LoginSID varbinary(85), |
| 330 | + LoginName VARCHAR(256) |
| 331 | + ); |
| 332 | + |
323 | 333 | IF @SkipChecksTable IS NOT NULL |
324 | 334 | AND @SkipChecksSchema IS NOT NULL |
325 | 335 | AND @SkipChecksDatabase IS NOT NULL |
@@ -1297,7 +1307,35 @@ AS |
1297 | 1307 | AND l.name <> 'l_certSignSmDetach'; /* Added in SQL 2016 */ |
1298 | 1308 | END; |
1299 | 1309 |
|
1300 | | - IF NOT EXISTS ( SELECT 1 |
| 1310 | + IF NOT EXISTS ( SELECT 1 |
| 1311 | + FROM #SkipChecks |
| 1312 | + WHERE CheckID = 2301 ) |
| 1313 | + BEGIN |
| 1314 | + |
| 1315 | + IF @Debug IN (1, 2) RAISERROR('Running CheckId [%d].', 0, 1, 2301) WITH NOWAIT; |
| 1316 | + |
| 1317 | + INSERT INTO #InvalidLogins |
| 1318 | + EXEC sp_validatelogins |
| 1319 | + ; |
| 1320 | + |
| 1321 | + INSERT INTO #BlitzResults |
| 1322 | + ( CheckID , |
| 1323 | + Priority , |
| 1324 | + FindingsGroup , |
| 1325 | + Finding , |
| 1326 | + URL , |
| 1327 | + Details |
| 1328 | + ) |
| 1329 | + SELECT 2301 AS CheckID , |
| 1330 | + 230 AS Priority , |
| 1331 | + 'Security' AS FindingsGroup , |
| 1332 | + 'Invalid login defined with Windows Authentication' AS Finding , |
| 1333 | + 'https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-validatelogins-transact-sql' AS URL , |
| 1334 | + ( 'Windows user or group ' + QUOTENAME(LoginName) + ' is mapped to a SQL Server principal but no longer exists in the Windows environment.') AS Details |
| 1335 | + FROM #InvalidLogins |
| 1336 | + ; |
| 1337 | + END; |
| 1338 | + IF NOT EXISTS ( SELECT 1 |
1301 | 1339 | FROM #SkipChecks |
1302 | 1340 | WHERE DatabaseName IS NULL AND CheckID = 5 ) |
1303 | 1341 | BEGIN |
@@ -9144,6 +9182,15 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1 |
9144 | 9182 |
|
9145 | 9183 | END; /* ELSE -- IF @OutputType = 'SCHEMA' */ |
9146 | 9184 |
|
| 9185 | + /* |
| 9186 | + Cleanups - drop temporary tables that have been created by this SP. |
| 9187 | + */ |
| 9188 | + |
| 9189 | + IF(OBJECT_ID('tempdb..#InvalidLogins') IS NOT NULL) |
| 9190 | + BEGIN |
| 9191 | + EXEC sp_executesql N'DROP TABLE #InvalidLogins;'; |
| 9192 | + END; |
| 9193 | + |
9147 | 9194 | /* |
9148 | 9195 | Reset the Nmumeric_RoundAbort session state back to enabled if it was disabled earlier. |
9149 | 9196 | See Github issue #2302 for more info. |
|
0 commit comments