“sa” account kept being locked out.

 

reporting experiencing an issue whereby the “sa” account kept being locked out.

In scenarios such as this the SQL Server Error Log is your friend, as it can be configured to record failed login attempts for an instance.  so instead we’re going to take a look at using the lesser known DMV sys.dm_os_ring_buffers.


Executing the query above produces a more readable result set such as the one below. You can see that in the query we joined our ring buffer data to the sys.messages catalog view in order to grab the text for the Error id. Splendid. Using this information we track down the precise source responsible for the Error: Login failed.

;WITH RingBufferConnectivity as

(   SELECT

        records.record.value('(/Record/@id)[1]', 'int') AS [RecordID],

        records.record.value('(/Record/ConnectivityTraceRecord/RecordType)[1]', 'varchar(max)') AS [RecordType],

        records.record.value('(/Record/ConnectivityTraceRecord/RecordTime)[1]', 'datetime') AS [RecordTime],

        records.record.value('(/Record/ConnectivityTraceRecord/SniConsumerError)[1]', 'int') AS [Error],

        records.record.value('(/Record/ConnectivityTraceRecord/State)[1]', 'int') AS [State],

        records.record.value('(/Record/ConnectivityTraceRecord/Spid)[1]', 'int') AS [Spid],

        records.record.value('(/Record/ConnectivityTraceRecord/RemoteHost)[1]', 'varchar(max)') AS [RemoteHost],

        records.record.value('(/Record/ConnectivityTraceRecord/RemotePort)[1]', 'varchar(max)') AS [RemotePort],

        records.record.value('(/Record/ConnectivityTraceRecord/LocalHost)[1]', 'varchar(max)') AS [LocalHost]

    FROM

    (   SELECT CAST(record as xml) AS record_data

        FROM sys.dm_os_ring_buffers

        WHERE ring_buffer_type= 'RING_BUFFER_CONNECTIVITY'

    ) TabA

    CROSS APPLY record_data.nodes('//Record') AS records (record)

)

SELECT RBC.*, m.text

FROM RingBufferConnectivity RBC

LEFT JOIN sys.messages M ON

    RBC.Error = M.message_id AND M.language_id = 1033

WHERE RBC.RecordType='Error' --Comment Out to see all RecordTypes

ORDER BY RBC.RecordTime DESC



Reference :https://www.johnsansom.com/using-sys-dm_os_ring_buffers-troubleshoot-connectivity-issues/


Comments

Popular posts from this blog

Interview Questions on AOAG

All about SQL Server Execution Plan

Understanding SQL Server Patching: GDR versus CU