none
כלי לצפיה ב- transaction log RRS feed

תשובות

  • http://www.novicksoftware.com/UDFofWeek/Vol1/T-SQL-UDF-Volume-1-Number-27-fn_dblog.htm

    HTH


    Ami Levin, SQL Server MVP. CTO, DBSophic LTD. - http://www.dbsophic.com/ --Performance is the most significant driver in maintaining data and service availability.--

    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 08:13
    יום חמישי 02 אוגוסט 2012 13:20
  • מניסיוני האישי, בדרך כלל כשמישהו שואל את מה שאת שואלת, הכוונה היא שהמישהו הזה מעוניין לצפות בהיסטוריית הפעולות של המשתמשים ב-DB.

    כלומר מה שהם מחפשים זה בעצם סוג של AUDIT, וחושבים שה-transaction log של SQL יכול לתת כזה מענה (אחרי הכל, זה "לוג").

    אם זה המצב גם במקרה שלך, אז כדאי שאודיע לך שזה לא באמת אפשרי עם ה-tran log של SQL כי זה ממש לא היעוד שלו.
    הנתונים שהוא שומר הם נתונים טרנזקטיביים בלבד, ש-SQL משתמש בהם לצורך ניהול טרנזקציות וביצוע recovery.
    לא תצליחי לראות בלוג נתונים כמו "יוזר X ביצע עדכון על טבלה Y עם הנתונים Z", פשוט כי דברים כאלה לא נשמרים שם.

    אם זה באמת הצורך שלך, תצטרכי למצוא פתרונות AUDIT מותאמים.
    אפשר לעשות את זה באמצעות טריגרים, או באמצעות כלים מותאמים, כגון:

    http://msdn.microsoft.com/en-us/library/cc280386.aspx

    http://www.idera.com/SQL-Server/sql-compliance-manager/

    ורבים נוספים.


    Eitan Blumin; SQL Server Consultant - Madeira SQL Server Services; http://www.madeira.co.il/author/eitan/

    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 12:35
    יום ראשון 05 אוגוסט 2012 08:48
    • הוצע כתשובה על-ידי EitanBlumin יום ראשון 05 אוגוסט 2012 07:47
    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 08:52
    יום שישי 03 אוגוסט 2012 07:01
    מנחה דיון
  • היי מיכל,

    עוד מוצר שעבדתי איתו ומומלץ בחום - Log Explorer :

    http://sql-log-explorer.fyxm.net/

    בהצלחה.


    Best Regards,

    Itai Binyamin, MVP
    SQL Server Group Manager
    Veracity Group

    www.Veracity-Group.com
    www.ItaiBinyamin.Blogspot.com

    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 12:43
    יום ראשון 05 אוגוסט 2012 11:17
  • היי מיכל,

    בהמשך למה שאיתן הציע, אך מכיוון קצת שונה, אם במקרה את מחפשת פעולות DDL שביצעו משתמשים שונים במערכת לדוגמא: יצירה, מחיקה או שינוי של אובקייטים כמו טבלאות, פרוצדורות או אפילו מסדי נתונים. תוכלי להיעזר ב- Default Trace. זהו Trace שנוצר בצורה אוטומטית עם התקנת Instance של  SQL Server, והוא עובד כל הזמן ברקע. תוכלי למצוא מידע נוסף בקישור המצורף.

    http://www.sqlservercentral.com/articles/SQL+Server+2005/64547/

     הערה חשובה: למעט פעולות DDL ניתן למצוא מידע רב אודות פעולות שונות אשר התרחשו על השרת.

    בכל מקרה אצרף סקריפט המדגים איחזור נתונים מהקובץ ה- Trace הנוכחי. את יכולה להריץ אותו כמו שהוא ללא כל התאמות!

    מקווה שעזרתי,

    יוסי חקיקת

    -- Read from the default trace:
    
    DECLARE @Path NVARCHAR(1000) = ''
    
    SELECT	
    	@Path = path
    FROM 
    	sys.traces 
    WHERE 
    	id = 1 -- The default trace
    
    
    -- SELECT @Path -- Debug select 
    SELECT 
    	 e.name AS EventName,
         loginname			,
         servername			,
         databasename		,
         e.category_id		,
         starttime			,
         endtime			,
         duration			,
         eventclass			,
         eventsubclass
    FROM 
    	sys.fn_trace_gettable(@Path,default)
    INNER JOIN 
    	sys.trace_events e	ON eventclass = trace_event_id
    


    • הוצע כתשובה על-ידי EitanBlumin יום ראשון 05 אוגוסט 2012 14:34
    • סומן כתשובה על-ידי michal12 יום חמישי 09 אוגוסט 2012 07:45
    יום ראשון 05 אוגוסט 2012 13:33

כל התגובות

  • http://www.novicksoftware.com/UDFofWeek/Vol1/T-SQL-UDF-Volume-1-Number-27-fn_dblog.htm

    HTH


    Ami Levin, SQL Server MVP. CTO, DBSophic LTD. - http://www.dbsophic.com/ --Performance is the most significant driver in maintaining data and service availability.--

    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 08:13
    יום חמישי 02 אוגוסט 2012 13:20
    • הוצע כתשובה על-ידי EitanBlumin יום ראשון 05 אוגוסט 2012 07:47
    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 08:52
    יום שישי 03 אוגוסט 2012 07:01
    מנחה דיון
  • מניסיוני האישי, בדרך כלל כשמישהו שואל את מה שאת שואלת, הכוונה היא שהמישהו הזה מעוניין לצפות בהיסטוריית הפעולות של המשתמשים ב-DB.

    כלומר מה שהם מחפשים זה בעצם סוג של AUDIT, וחושבים שה-transaction log של SQL יכול לתת כזה מענה (אחרי הכל, זה "לוג").

    אם זה המצב גם במקרה שלך, אז כדאי שאודיע לך שזה לא באמת אפשרי עם ה-tran log של SQL כי זה ממש לא היעוד שלו.
    הנתונים שהוא שומר הם נתונים טרנזקטיביים בלבד, ש-SQL משתמש בהם לצורך ניהול טרנזקציות וביצוע recovery.
    לא תצליחי לראות בלוג נתונים כמו "יוזר X ביצע עדכון על טבלה Y עם הנתונים Z", פשוט כי דברים כאלה לא נשמרים שם.

    אם זה באמת הצורך שלך, תצטרכי למצוא פתרונות AUDIT מותאמים.
    אפשר לעשות את זה באמצעות טריגרים, או באמצעות כלים מותאמים, כגון:

    http://msdn.microsoft.com/en-us/library/cc280386.aspx

    http://www.idera.com/SQL-Server/sql-compliance-manager/

    ורבים נוספים.


    Eitan Blumin; SQL Server Consultant - Madeira SQL Server Services; http://www.madeira.co.il/author/eitan/

    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 12:35
    יום ראשון 05 אוגוסט 2012 08:48
  • היי מיכל,

    עוד מוצר שעבדתי איתו ומומלץ בחום - Log Explorer :

    http://sql-log-explorer.fyxm.net/

    בהצלחה.


    Best Regards,

    Itai Binyamin, MVP
    SQL Server Group Manager
    Veracity Group

    www.Veracity-Group.com
    www.ItaiBinyamin.Blogspot.com

    • סומן כתשובה על-ידי michal12 יום ראשון 05 אוגוסט 2012 12:43
    יום ראשון 05 אוגוסט 2012 11:17
  • תודה רבה לכולם!! עזרתם לי מאוד :-)

    קראתי את כל התגובות ואכן כפי שאיתן כתב המטרה היא לזהות איזו פקודה בוצעה ע"י איזה משתמש, לכן, השימוש בפונקציות  fn_dblog ו- fn_dump_dblog אינו מספיק.

    כרגע אני בוחנת את האפשרויות האחרות שהועלו על ידכם.

    אשמח לכל הארה נוספת,

    מיכל

    יום ראשון 05 אוגוסט 2012 12:42
  • היי מיכל,

    בהמשך למה שאיתן הציע, אך מכיוון קצת שונה, אם במקרה את מחפשת פעולות DDL שביצעו משתמשים שונים במערכת לדוגמא: יצירה, מחיקה או שינוי של אובקייטים כמו טבלאות, פרוצדורות או אפילו מסדי נתונים. תוכלי להיעזר ב- Default Trace. זהו Trace שנוצר בצורה אוטומטית עם התקנת Instance של  SQL Server, והוא עובד כל הזמן ברקע. תוכלי למצוא מידע נוסף בקישור המצורף.

    http://www.sqlservercentral.com/articles/SQL+Server+2005/64547/

     הערה חשובה: למעט פעולות DDL ניתן למצוא מידע רב אודות פעולות שונות אשר התרחשו על השרת.

    בכל מקרה אצרף סקריפט המדגים איחזור נתונים מהקובץ ה- Trace הנוכחי. את יכולה להריץ אותו כמו שהוא ללא כל התאמות!

    מקווה שעזרתי,

    יוסי חקיקת

    -- Read from the default trace:
    
    DECLARE @Path NVARCHAR(1000) = ''
    
    SELECT	
    	@Path = path
    FROM 
    	sys.traces 
    WHERE 
    	id = 1 -- The default trace
    
    
    -- SELECT @Path -- Debug select 
    SELECT 
    	 e.name AS EventName,
         loginname			,
         servername			,
         databasename		,
         e.category_id		,
         starttime			,
         endtime			,
         duration			,
         eventclass			,
         eventsubclass
    FROM 
    	sys.fn_trace_gettable(@Path,default)
    INNER JOIN 
    	sys.trace_events e	ON eventclass = trace_event_id
    


    • הוצע כתשובה על-ידי EitanBlumin יום ראשון 05 אוגוסט 2012 14:34
    • סומן כתשובה על-ידי michal12 יום חמישי 09 אוגוסט 2012 07:45
    יום ראשון 05 אוגוסט 2012 13:33
  • תודה רבה.

    זה הכי קרוב למה שחיפשתי :-)

    האם נה- trace  מכיל גם פקודות DML?

    יום חמישי 09 אוגוסט 2012 12:22
  • היי מיכל,

    פעולות ה- Audit שה- Default Trace הן מוגבלת למדיי. הוא כן מבצע סוג מאד מסוים של Audit כגון: נסיונות התחברות לשרת, שינוי והוספה של Logins וכו'. אבל הוא לא תופס (לצערך....) פעולות של DML. כמו שאיתן כבר ציין ישנן דרכים אחרות לבצע מעקב אחר שינויים של ה- Data עצמו. מצורף קישור, שם תוכלי למצוא את כל האירועים הנתפסים ע"י ה- Default Trace.

    http://blogs.technet.com/b/vipulshah/archive/2007/04/16/default-trace-in-sql-server-2005.aspx

    מקווה שעזרתי שיהיה סופ"ש נעים ושבת שלום,

    יוסי חקיקת


    • נערך על-ידי Yossi Hakikat יום חמישי 09 אוגוסט 2012 13:39
    יום חמישי 09 אוגוסט 2012 13:39