Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

Tracking changes to SQL Server Expand / Collapse
Author
Message
Posted Friday, April 5, 2013 9:26 AM
Old Hand

Old HandOld HandOld HandOld HandOld HandOld HandOld HandOld Hand

Group: General Forum Members
Last Login: Thursday, August 14, 2014 7:06 AM
Points: 321, Visits: 569
I was wondering if a SQL trace could be set up to track changes to SQL Server, so I can track who is making changes and keep the Recovery Document up to date. So I would not want to track things... like users and logins. In fact I do not need to track anything below the database level, but one issue that came up today... was that someone had deleted a linked server.

Going through Profiler, I tried to build the trace... but I am not sure if my selections are correct.

-- Trying to create a trace to caputre changes to the SQL Server Instance

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @OutputFileName nvarchar(256)
set @maxfilesize = 10
set @OutputFileName = 'F:\tracefiles\Track_Instance_Changes' + '_' + convert(varchar(20), getdate(),112) + Replace(convert(varchar(20), getdate(),108),':','')

exec @rc = sp_trace_create @TraceID output, 0, @OutputFileName, @maxfilesize, NULL

if (@rc != 0) goto error

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 117, 7, @on
exec sp_trace_setevent @TraceID, 117, 23, @on
exec sp_trace_setevent @TraceID, 117, 8, @on
exec sp_trace_setevent @TraceID, 117, 40, @on
exec sp_trace_setevent @TraceID, 117, 64, @on
exec sp_trace_setevent @TraceID, 117, 1, @on
exec sp_trace_setevent @TraceID, 117, 9, @on
exec sp_trace_setevent @TraceID, 117, 41, @on
exec sp_trace_setevent @TraceID, 117, 49, @on
exec sp_trace_setevent @TraceID, 117, 6, @on
exec sp_trace_setevent @TraceID, 117, 10, @on
exec sp_trace_setevent @TraceID, 117, 14, @on
exec sp_trace_setevent @TraceID, 117, 26, @on
exec sp_trace_setevent @TraceID, 117, 50, @on
exec sp_trace_setevent @TraceID, 117, 3, @on
exec sp_trace_setevent @TraceID, 117, 11, @on
exec sp_trace_setevent @TraceID, 117, 35, @on
exec sp_trace_setevent @TraceID, 117, 51, @on
exec sp_trace_setevent @TraceID, 117, 12, @on
exec sp_trace_setevent @TraceID, 117, 44, @on
exec sp_trace_setevent @TraceID, 117, 60, @on
exec sp_trace_setevent @TraceID, 117, 5, @on
exec sp_trace_setevent @TraceID, 117, 21, @on
exec sp_trace_setevent @TraceID, 117, 29, @on
exec sp_trace_setevent @TraceID, 117, 37, @on
exec sp_trace_setevent @TraceID, 129, 7, @on
exec sp_trace_setevent @TraceID, 129, 23, @on
exec sp_trace_setevent @TraceID, 129, 8, @on
exec sp_trace_setevent @TraceID, 129, 40, @on
exec sp_trace_setevent @TraceID, 129, 64, @on
exec sp_trace_setevent @TraceID, 129, 1, @on
exec sp_trace_setevent @TraceID, 129, 41, @on
exec sp_trace_setevent @TraceID, 129, 49, @on
exec sp_trace_setevent @TraceID, 129, 6, @on
exec sp_trace_setevent @TraceID, 129, 10, @on
exec sp_trace_setevent @TraceID, 129, 14, @on
exec sp_trace_setevent @TraceID, 129, 26, @on
exec sp_trace_setevent @TraceID, 129, 34, @on
exec sp_trace_setevent @TraceID, 129, 50, @on
exec sp_trace_setevent @TraceID, 129, 3, @on
exec sp_trace_setevent @TraceID, 129, 11, @on
exec sp_trace_setevent @TraceID, 129, 35, @on
exec sp_trace_setevent @TraceID, 129, 51, @on
exec sp_trace_setevent @TraceID, 129, 4, @on
exec sp_trace_setevent @TraceID, 129, 12, @on
exec sp_trace_setevent @TraceID, 129, 28, @on
exec sp_trace_setevent @TraceID, 129, 60, @on
exec sp_trace_setevent @TraceID, 129, 5, @on
exec sp_trace_setevent @TraceID, 129, 21, @on
exec sp_trace_setevent @TraceID, 129, 29, @on
exec sp_trace_setevent @TraceID, 129, 37, @on
exec sp_trace_setevent @TraceID, 178, 7, @on
exec sp_trace_setevent @TraceID, 178, 23, @on
exec sp_trace_setevent @TraceID, 178, 8, @on
exec sp_trace_setevent @TraceID, 178, 40, @on
exec sp_trace_setevent @TraceID, 178, 64, @on
exec sp_trace_setevent @TraceID, 178, 1, @on
exec sp_trace_setevent @TraceID, 178, 41, @on
exec sp_trace_setevent @TraceID, 178, 49, @on
exec sp_trace_setevent @TraceID, 178, 6, @on
exec sp_trace_setevent @TraceID, 178, 10, @on
exec sp_trace_setevent @TraceID, 178, 14, @on
exec sp_trace_setevent @TraceID, 178, 26, @on
exec sp_trace_setevent @TraceID, 178, 34, @on
exec sp_trace_setevent @TraceID, 178, 50, @on
exec sp_trace_setevent @TraceID, 178, 3, @on
exec sp_trace_setevent @TraceID, 178, 11, @on
exec sp_trace_setevent @TraceID, 178, 35, @on
exec sp_trace_setevent @TraceID, 178, 51, @on
exec sp_trace_setevent @TraceID, 178, 4, @on
exec sp_trace_setevent @TraceID, 178, 12, @on
exec sp_trace_setevent @TraceID, 178, 28, @on
exec sp_trace_setevent @TraceID, 178, 60, @on
exec sp_trace_setevent @TraceID, 178, 21, @on
exec sp_trace_setevent @TraceID, 178, 29, @on
exec sp_trace_setevent @TraceID, 178, 37, @on
exec sp_trace_setevent @TraceID, 130, 7, @on
exec sp_trace_setevent @TraceID, 130, 23, @on
exec sp_trace_setevent @TraceID, 130, 39, @on
exec sp_trace_setevent @TraceID, 130, 8, @on
exec sp_trace_setevent @TraceID, 130, 40, @on
exec sp_trace_setevent @TraceID, 130, 64, @on
exec sp_trace_setevent @TraceID, 130, 1, @on
exec sp_trace_setevent @TraceID, 130, 41, @on
exec sp_trace_setevent @TraceID, 130, 49, @on
exec sp_trace_setevent @TraceID, 130, 10, @on
exec sp_trace_setevent @TraceID, 130, 26, @on
exec sp_trace_setevent @TraceID, 130, 34, @on
exec sp_trace_setevent @TraceID, 130, 42, @on
exec sp_trace_setevent @TraceID, 130, 50, @on
exec sp_trace_setevent @TraceID, 130, 3, @on
exec sp_trace_setevent @TraceID, 130, 11, @on
exec sp_trace_setevent @TraceID, 130, 35, @on
exec sp_trace_setevent @TraceID, 130, 43, @on
exec sp_trace_setevent @TraceID, 130, 51, @on
exec sp_trace_setevent @TraceID, 130, 4, @on
exec sp_trace_setevent @TraceID, 130, 12, @on
exec sp_trace_setevent @TraceID, 130, 28, @on
exec sp_trace_setevent @TraceID, 130, 60, @on
exec sp_trace_setevent @TraceID, 130, 21, @on
exec sp_trace_setevent @TraceID, 130, 29, @on
exec sp_trace_setevent @TraceID, 130, 37, @on
exec sp_trace_setevent @TraceID, 130, 6, @on
exec sp_trace_setevent @TraceID, 130, 14, @on
exec sp_trace_setevent @TraceID, 118, 7, @on
exec sp_trace_setevent @TraceID, 118, 23, @on
exec sp_trace_setevent @TraceID, 118, 8, @on
exec sp_trace_setevent @TraceID, 118, 40, @on
exec sp_trace_setevent @TraceID, 118, 64, @on
exec sp_trace_setevent @TraceID, 118, 1, @on
exec sp_trace_setevent @TraceID, 118, 9, @on
exec sp_trace_setevent @TraceID, 118, 41, @on
exec sp_trace_setevent @TraceID, 118, 49, @on
exec sp_trace_setevent @TraceID, 118, 6, @on
exec sp_trace_setevent @TraceID, 118, 10, @on
exec sp_trace_setevent @TraceID, 118, 14, @on
exec sp_trace_setevent @TraceID, 118, 26, @on
exec sp_trace_setevent @TraceID, 118, 34, @on
exec sp_trace_setevent @TraceID, 118, 50, @on
exec sp_trace_setevent @TraceID, 118, 3, @on
exec sp_trace_setevent @TraceID, 118, 11, @on
exec sp_trace_setevent @TraceID, 118, 35, @on
exec sp_trace_setevent @TraceID, 118, 51, @on
exec sp_trace_setevent @TraceID, 118, 4, @on
exec sp_trace_setevent @TraceID, 118, 12, @on
exec sp_trace_setevent @TraceID, 118, 28, @on
exec sp_trace_setevent @TraceID, 118, 60, @on
exec sp_trace_setevent @TraceID, 118, 5, @on
exec sp_trace_setevent @TraceID, 118, 21, @on
exec sp_trace_setevent @TraceID, 118, 29, @on
exec sp_trace_setevent @TraceID, 118, 37, @on
exec sp_trace_setevent @TraceID, 176, 7, @on
exec sp_trace_setevent @TraceID, 176, 23, @on
exec sp_trace_setevent @TraceID, 176, 8, @on
exec sp_trace_setevent @TraceID, 176, 40, @on
exec sp_trace_setevent @TraceID, 176, 64, @on
exec sp_trace_setevent @TraceID, 176, 1, @on
exec sp_trace_setevent @TraceID, 176, 9, @on
exec sp_trace_setevent @TraceID, 176, 41, @on
exec sp_trace_setevent @TraceID, 176, 49, @on
exec sp_trace_setevent @TraceID, 176, 10, @on
exec sp_trace_setevent @TraceID, 176, 26, @on
exec sp_trace_setevent @TraceID, 176, 34, @on
exec sp_trace_setevent @TraceID, 176, 50, @on
exec sp_trace_setevent @TraceID, 176, 3, @on
exec sp_trace_setevent @TraceID, 176, 11, @on
exec sp_trace_setevent @TraceID, 176, 35, @on
exec sp_trace_setevent @TraceID, 176, 51, @on
exec sp_trace_setevent @TraceID, 176, 4, @on
exec sp_trace_setevent @TraceID, 176, 12, @on
exec sp_trace_setevent @TraceID, 176, 28, @on
exec sp_trace_setevent @TraceID, 176, 60, @on
exec sp_trace_setevent @TraceID, 176, 21, @on
exec sp_trace_setevent @TraceID, 176, 29, @on
exec sp_trace_setevent @TraceID, 176, 37, @on
exec sp_trace_setevent @TraceID, 176, 45, @on
exec sp_trace_setevent @TraceID, 176, 6, @on
exec sp_trace_setevent @TraceID, 176, 14, @on
exec sp_trace_setevent @TraceID, 176, 46, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1

-- display trace id for future references
select TraceID=@TraceID
goto finish

error:
select ErrorCode=@rc

finish:
go
Post #1439286
Posted Friday, April 5, 2013 9:38 AM


SSC-Forever

SSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-Forever

Group: General Forum Members
Last Login: Today @ 2:14 PM
Points: 42,774, Visits: 35,873
Have you considered DDL triggers?


Gail Shaw
Microsoft Certified Master: SQL Server 2008, MVP
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

We walk in the dark places no others will enter
We stand on the bridge and no one may pass

Post #1439307
Posted Friday, April 5, 2013 11:07 AM
Old Hand

Old HandOld HandOld HandOld HandOld HandOld HandOld HandOld Hand

Group: General Forum Members
Last Login: Thursday, August 14, 2014 7:06 AM
Points: 321, Visits: 569
I take it.. from your reply... that it is possible to put triggers on Instance level settings.. like Linked Servers, Job Log settings, ect... not sure how to do that, I do know how to create a trigger on a table... I guess Microsoft is storing that data someplace, but not sure where... or even if it is one of the system databases that we have access to (msdb, or master would be the only two that I would guess this data is stored in... that is not a hidden database)
Post #1439374
Posted Friday, April 5, 2013 1:05 PM


SSC-Forever

SSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-ForeverSSC-Forever

Group: General Forum Members
Last Login: Today @ 2:14 PM
Points: 42,774, Visits: 35,873
System tables in the master database, but no, I was not suggesting DML triggers on the system tables.

DDL triggers
http://msdn.microsoft.com/en-us/library/ms190989%28v=sql.105%29.aspx



Gail Shaw
Microsoft Certified Master: SQL Server 2008, MVP
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

We walk in the dark places no others will enter
We stand on the bridge and no one may pass

Post #1439437
Posted Friday, April 5, 2013 2:10 PM
Old Hand

Old HandOld HandOld HandOld HandOld HandOld HandOld HandOld Hand

Group: General Forum Members
Last Login: Thursday, August 14, 2014 7:06 AM
Points: 321, Visits: 569
Thanks for your help.. I will review your link next week!
Post #1439467
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse