Ki módosította a táblámat?

Ha többen dolgozunk egy adattárház projekten, vagy egy szerveren előfordulhat, hogy valaki megváltoztatja egy táblánk szerkezetét, átkonfigurálja az SQL Server-t, vagy esetleg jogosultságot ad vagy elvesz bizonyos felhasználónak/felhasználóktól. Vannak esetek, amikor jó lenne tudni, hogy mindezen változtatásokat ki és mikor hajtotta végre...

Az 2005-ös SQL Server alapértelmezettként futtat egy kis erőforrás igényű trace-t, amely elkapja az objektum módosításokat, és arról naplót vezet, melyet a Management Studio felületén keresztül meg is nézhetünk:

 

Schema Changes History riport

Schema Changes History riport a
Management Studio-ban

 

A riport megtekintéséhez az Object Explorer-ben kattintsunk a kívánt adatbázisra, és a Management Studio summary fülén a riportok közül válasszuk ki a Schema Changes History riportot.

Technikai háttér

A fenti riporthoz az adatokat az SQL Server egy beépített, és alapértelmezettként folyamatosan futó trace-e gyűjti. A trace a követkeő eseményeket naplózza:

 

Database

Errors and Warnings

 

 

Data file auto grow

Errorlog

Data file auto shrink

Hash warning

Database mirroring status change

Missing Column Statistics

Log file auto grow

Missing Join Predicate

Log file auto shrink

Sort Warning

 

 

Objects

Security Audit

 

 

Object Altered

Audit Add DB user event

Object Created

Audit Add login to server role event

Object Deleted

Audit Add Member to DB role event

 

Audit Add Role event

Server

Audit Add login event

 

Audit Backup/Restore event

Server Memory Change

Audit Change Database owner

 

Audit DBCC event

 

Audit Database Scope GDR event

 

Audit Login Change Property event

 

Audit Login Failed

 

Audit Login GDR event

 

Audit Schema Object GDR event

 

Audit Schema Object Take Ownership

 

A default trace-ről az fn_trace_getinfo() függvény meghívásával

Select * from fn_trace_getinfo(default)

kaphatunk információt.

Az fn_trace_getinfo(default) függvény eredménye

Az fn_trace_getinfo(default) függvény eredménye

A kapott információk értelmezése

  • Property 1: Az 1-es tulajdonság beállított értéke meghatározza, hogy mi történjen, ha a log fájl mérete eléri a 3-as tulajdonságnál beállított értéket. (2-es érték esetén lezárja az aktuális log fájl és egy újat nyit. Esetünkben log_15.trc fájl nevéből arra következtethetünk, hogy ez a 15-ik log fájl)

  • Property 2: Az aktuális log fájl neve. (Tartalma megtekinthető az SQL Server Profiler-rel, vagy az fn_trace_gettable TSQL függvény segítségével)

  • Property 3: A log fájl maximális mérete megabájtban (Esetünkben ez 20 Mbyte)

  • Property 4: A trace futásának határideje (StopTime), azaz megmutatja, hogy meddig fusson a trace (időpont) Esetünkben (NULL) az idők végezetéig.

  • Property 5: Megmutatja, hogy az adott trace éppen fut-e vagy sem (Esetünkben az 1 azt jelenti, hogy fut)

Felhasznált irodalom:

Kapcsolódó anyagok:

Új hozzászólás