none
欄位值被誤刪? RRS feed

  • 問題

  •  

    請問各位:

           我有一個資料表的欄位不小心被人給誤刪了

           請問我該如去偵測刪除欄位的同事,如果以

           SQL PROFILET來偵測的話,請問我該偵測

           那些參數來參考被那位同事誤刪呢

                                                         謝謝各位

    2008年3月19日 上午 08:43

解答

所有回覆

  • 也許你需要稽核的功能 不過要事前先打開

     

    已經被刪除了就沒辦法找到兇手了...

     

    將Audit level為 success

     

    http://www.microsoft.com/technet/security/prodtech/sqlserver/sql2kaud.mspx

     

    2008年3月20日 上午 07:45
  • 可以考慮使用 After 的觸發程序來將 DELETE 異動操作之前的資料寫入到另外一個資料表中。

     

    至於要知道是誰,因為你沒說明要怎樣的使用者,一般來說有下列這些可用: CURRENT_USER(等同於函數 USER_NAME())、SESSION_USERSYSTEM_USER 或是 SUSER_SNAME()。至於這幾個的差別,說來話長,請自行參考:http://msdn2.microsoft.com/zh-tw/library/ms191126.aspx

    2008年3月20日 上午 10:36
    版主
  • 謝謝各位的回答

           順便再請問在SQL2005中我可以用警示的機制

           來了解是被誰誤刪了嗎?如果用警示的話又該

           如何設定呢?

    2008年3月21日 上午 12:59
  • 如果要用「警示」,就必須在「錯誤號碼」跟「嚴重性層級」之間,擇一使用,問題是如果語法正確,刪除資料並不會產生錯誤,既然沒有錯誤,怎會觸發「錯誤號碼」或「嚴重性層級」呢?  

    2008年3月21日 上午 05:09
    版主
  • 謝謝您的回答

     

    2008年3月24日 上午 12:22
  • 如果是SQL2005的話,就算沒有監控,從預設報表內可以看得,
    不過請先檢查資料庫相容性是 SQL 2005 (90),版本如果是

    Microsoft SQL Server Management Studio      9.00.3042.00

    直接在資料庫名稱右鍵點選[報表],[標準報表]裡[結構描述變更歷程紀錄],

    會有記錄變更欄位的USER;如果SQL的版本是1399的話,

    在[摘要]的頁面[清單]旁,有個報表的選項,一樣可以找到這張預設報表。

    2008年4月8日 上午 07:38