DCSIMG
האח הגדול עינו פקוחה - תיעוד כל השינויים בדטבייס - גרי רשף

האח הגדול עינו פקוחה - תיעוד כל השינויים בדטבייס

הגיע הזמן לגלות מי עשה מה ומתי, ועם החומר המרשיע לזמן את החשודים לחדר החקירות! ניצור טבלת מעקב:

Create Table DDLEventLog(Taarih DateTime Null, UserName SysName Null, ObjectName SysName Null, CommandText VarChar(Max) Null, EventType VarChar(Max) Null, DatabaseName VarChar(Max) Null, SchemaName VarChar(Max) Null, SpID VarChar(Max) Null, LoginName VarChar(Max) Null);

ניצור טריגר DDL שיתעד לטבלה כל פיפס:

Create Trigger TrgEventLog On Database For DDL_Database_Level_Events As Insert Into DDLEventLog(Taarih, UserName, ObjectName, CommandText, EventType, DatabaseName, SchemaName, SpID, LoginName) Select EventData().value('(/EVENT_INSTANCE/PostTime)[1]', 'DateTime') Taarih, EventData().value('(/EVENT_INSTANCE/UserName)[1]','VarChar(Max)') UserName, EventData().value('(/EVENT_INSTANCE/ObjectName)[1]','VarChar(Max)') ObjectName, EventData().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','VarChar(Max)') CommandText, EventData().value('(/EVENT_INSTANCE/EventType)[1]','VarChar(Max)') EventType, EventData().value('(/EVENT_INSTANCE/DatabaseName)[1]','VarChar(Max)') DatabaseName, EventData().value('data(/EVENT_INSTANCE/SchemaName)[1]','VarChar(Max)') SchemaName, EventData().value('(/EVENT_INSTANCE/SPID)[1]', 'VarChar(Max)') SpID, EventData().value('(/EVENT_INSTANCE/LoginName)[1]','VarChar(Max)') LoginName;

וכעת לבדיקה ננסה ליצור טבלה, לבטל אותה, ולראות מה מופיע בטבלת המעקב:

Create Table MyTest(I Int); Go Drop Table MyTest; Go Select * From DDLEventLog;

תוכן התגובה

אין תגובות

שלח תגובה

(שדה חובה) 
(שדה חובה) 
(אופציונלי)
(שדה חובה) 

Enter the numbers above: