|
dewacorp.alliances
452 Posts |
Posted - 2008-02-20 : 23:03:11
|
| We have a similar like this in SQL2000 which is basically check the failed login. Do you know any similar scripts like this? The EXEC master..xp_readerrorlog is only returning some fields.ALTER PROCEDURE [dbo].[usp_CheckFailedLogins] ( @IntervalMinutes int = 15)ASSET NOCOUNT ONSET ANSI_NULLS ONSET ANSI_WARNINGS ONDECLARE @msg varchar(400)SELECT @msg = ''CREATE TABLE #tmpEvent ( EventTime datetime, EventType varchar(30), EventText varchar(255), EventUser varchar(80), EventFlag bit )CREATE TABLE #tmpLog ( StdOutput nvarchar(4000), ContinuationRow int )INSERT INTO #tmpLogEXEC master..xp_readerrorlog-- Report eventsINSERT INTO #tmpEvent ( EventTime, EventType, EventText, EventUser, EventFlag )SELECT EventTime = CONVERT(datetime,SUBSTRING(StdOutput,1,23),121), EventType = SUBSTRING(StdOutput,24,10), EventText = SUBSTRING(StdOutput,34,4000), EventUser = SUBSTRING(StdOutput,57,LEN(stdOutput)-57-1), EventFlag = 0FROM #tmpLogWHERE SUBSTRING(StdOutput,24,5) = 'logon'AND ISDATE(SUBSTRING(StdOutput,1,23)) = 1AND SUBSTRING(StdOutput,34,21) = 'Login failed for user'AND CONVERT(datetime,SUBSTRING(StdOutput,1,23),121) > DATEADD(mi,-1 * @IntervalMinutes,GetDate())UPDATE tmpEventSET EventFlag = 1FROM #tmpEvent tmpEventWHERE tmpEvent.EventUser IN ( SELECT s.name FROM master..syslogins s WHERE s.sysadmin = 1 OR s.securityadmin = 1 OR s.serveradmin = 1 )IF EXISTS (SELECT EventFlag FROM #tmpEvent WHERE EventFlag = 1)BEGIN SELECT @msg = ISNULL(@@SERVERNAME,'') +', ' + CONVERT(varchar(30),GetDate(),121) + ', ' + 'Failed login attempt related to administrator level account. Check the SQL Server Event Log.' + SPACE(1) SELECT @msg = @msg + 'Login failed for user ''' + EventUser + ''' at ' + CONVERT(varchar(30),MAX(EventTime),121) + '; ' FROM #tmpEvent WHERE EventFlag = 1 GROUP BY EventUser -- Raise the error SELECT @msg = CONVERT(varchar(16),GetDate(),121) + ' - ' + ISNULL(OBJECT_NAME(@@PROCID),'') + ', - ' + @msg RAISERROR('%s (%d)', 16, 1, @msg, -101)END-- CleanupDROP TABLE #tmpLogDROP TABLE #tmpEvent |
|