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 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
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:
- Jon Baker: Is Microsoft becoming Big Brother with SQL Server 2005?
- SQL Server 2005 Books Online: default trace enabled Option
- SQL Server 2005 Books Online: fn_trace_getinfo (Transact-SQL)
Kapcsolódó anyagok:
Kővári Attila - BI projekt
Új hozzászólás