Skip to content

Commit 5f337bd

Browse files
committed
#3356 fix for sp_validatelogins. Reworked to handle output
1 parent e9d98e9 commit 5f337bd

1 file changed

Lines changed: 27 additions & 20 deletions

File tree

sp_Blitz.sql

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -299,26 +299,33 @@ AS
299299

300300
IF ISNULL(@SkipValidateLogins, 0) != 1 /*If @SkipValidateLogins hasn't been set to 1 by the caller*/
301301
BEGIN
302-
IF EXISTS
303-
(
304-
SELECT 1/0
305-
FROM fn_my_permissions(N'sp_validatelogins', N'OBJECT') AS fmp
306-
WHERE fmp.permission_name = N'EXECUTE'
307-
)
308-
BEGIN
309-
BEGIN TRY
310-
EXEC sp_validatelogins;
311-
312-
SET @SkipValidateLogins = 0 /*We can execute sp_validatelogins*/
313-
END TRY
314-
BEGIN CATCH
315-
SET @SkipValidateLogins = 1 /*We have execute rights but sp_validatelogins throws an error so skip it*/
316-
END CATCH
317-
END;
318-
END;
319-
ELSE
320-
BEGIN
321-
SET @SkipValidateLogins = 1;
302+
IF OBJECT_ID(N'tempdb..#ValidateLoginsTest') IS NULL
303+
BEGIN
304+
CREATE TABLE #ValidateLoginsTest
305+
(
306+
[SID] varbinary(85)
307+
,[NT_Login] sysname
308+
);
309+
END;
310+
311+
BEGIN TRY
312+
INSERT INTO #ValidateLoginsTest
313+
(
314+
[SID]
315+
,[NT_Login]
316+
)
317+
EXEC sp_validatelogins;
318+
319+
SET @SkipValidateLogins = 0 /*We can execute sp_validatelogins*/
320+
END TRY
321+
BEGIN CATCH
322+
SET @SkipValidateLogins = 1 /*We have don't have execute rights or sp_validatelogins throws an error so skip it*/
323+
END CATCH;
324+
325+
IF OBJECT_ID(N'tempdb..#ValidateLoginsTest') IS NOT NULL
326+
BEGIN
327+
DROP TABLE #ValidateLoginsTest;
328+
END;
322329
END; /*Need execute on sp_validatelogins*/
323330

324331
IF ISNULL(@SkipModel, 0) != 1 /*If @SkipModel hasn't been set to 1 by the caller*/

0 commit comments

Comments
 (0)