Skip to content

Commit 4f4cc3d

Browse files
committed
#3356 Reworked the flow so no extra temp table is needed
1 parent 5a1dc9d commit 4f4cc3d

1 file changed

Lines changed: 17 additions & 28 deletions

File tree

sp_Blitz.sql

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,16 @@ AS
225225
/* End of declarations for First Responder Kit consistency check:*/
226226
;
227227

228+
/* Create temp table for check 2301 */
229+
IF OBJECT_ID('tempdb..#InvalidLogins') IS NOT NULL
230+
EXEC sp_executesql N'DROP TABLE #InvalidLogins;';
231+
232+
CREATE TABLE #InvalidLogins
233+
(
234+
LoginSID varbinary(85),
235+
LoginName VARCHAR(256)
236+
);
237+
228238
/*Starting permissions checks here, but only if we're not a sysadmin*/
229239
IF
230240
(
@@ -299,20 +309,12 @@ AS
299309

300310
IF ISNULL(@SkipValidateLogins, 0) != 1 /*If @SkipValidateLogins hasn't been set to 1 by the caller*/
301311
BEGIN
302-
IF OBJECT_ID(N'tempdb..#ValidateLoginsTest') IS NOT NULL
303-
EXEC sp_executesql N'DROP TABLE #ValidateLoginsTest;';
304-
305-
CREATE TABLE #ValidateLoginsTest
306-
(
307-
[SID] varbinary(85)
308-
,[NT_Login] sysname
309-
);
310-
311312
BEGIN TRY
312-
INSERT INTO #ValidateLoginsTest
313+
/* Try to fill the table for check 2301 */
314+
INSERT INTO #InvalidLogins
313315
(
314-
[SID]
315-
,[NT_Login]
316+
[LoginSID]
317+
,[LoginName]
316318
)
317319
EXEC sp_validatelogins;
318320

@@ -321,9 +323,6 @@ AS
321323
BEGIN CATCH
322324
SET @SkipValidateLogins = 1; /*We have don't have execute rights or sp_validatelogins throws an error so skip it*/
323325
END CATCH;
324-
325-
IF OBJECT_ID(N'tempdb..#ValidateLoginsTest') IS NOT NULL
326-
EXEC sp_executesql N'DROP TABLE #ValidateLoginsTest;';
327326
END; /*Need execute on sp_validatelogins*/
328327

329328
IF ISNULL(@SkipModel, 0) != 1 /*If @SkipModel hasn't been set to 1 by the caller*/
@@ -562,16 +561,6 @@ AS
562561
FROM (VALUES(NULL, 2301, NULL)) AS v (DatabaseName, CheckID, ServerName) /*sp_validatelogins*/
563562
WHERE @SkipValidateLogins = 1
564563

565-
IF(OBJECT_ID('tempdb..#InvalidLogins') IS NOT NULL)
566-
BEGIN
567-
EXEC sp_executesql N'DROP TABLE #InvalidLogins;';
568-
END;
569-
570-
CREATE TABLE #InvalidLogins (
571-
LoginSID varbinary(85),
572-
LoginName VARCHAR(256)
573-
);
574-
575564
IF @SkipChecksTable IS NOT NULL
576565
AND @SkipChecksSchema IS NOT NULL
577566
AND @SkipChecksDatabase IS NOT NULL
@@ -1704,9 +1693,9 @@ AS
17041693

17051694
IF @Debug IN (1, 2) RAISERROR('Running CheckId [%d].', 0, 1, 2301) WITH NOWAIT;
17061695

1707-
INSERT INTO #InvalidLogins
1708-
EXEC sp_validatelogins
1709-
;
1696+
/*
1697+
#InvalidLogins is filled at the start during the permissions check
1698+
*/
17101699

17111700
INSERT INTO #BlitzResults
17121701
( CheckID ,

0 commit comments

Comments
 (0)