< 返回新聞公共列表

如何在云數(shù)據(jù)庫 SQL Server中找出刪除的文件呢?

發(fā)布時間:2020-12-22 15:23:15

一、總結(jié)

1、當(dāng)沒有部署觸發(fā)器和開啟審計的情況,想知道某張表是被哪個用戶刪除的,可以使用系統(tǒng)函數(shù)fn_dblog結(jié)合系統(tǒng)的默認(rèn)跟蹤找到;

2、需要注意的是系統(tǒng)默認(rèn)提供5個跟蹤文件,默認(rèn)大小都是20MB,當(dāng)實(shí)例重啟的時候或者達(dá)到最大值的時候,會重新生成新的文件,將最早的跟蹤文件刪除,依次滾動更新,所以刪除表后間隔的時間太長,也是找不到結(jié)果的;

3、fn_dblog函數(shù)簡介

* 使用fn_dblog函數(shù)我們可以查看當(dāng)前數(shù)據(jù)庫的事物日志文件的記錄(活動的日志,備份走的日志用該函數(shù)查不到);

* 官方并未公開此函數(shù)的用法,在生產(chǎn)環(huán)境,慎用此命令!?。?;

* 2個參數(shù):

參數(shù)1:日志開始序列號位置(LSN),輸入NULL,表示從日志開始位置返回結(jié)果;

參數(shù)2:日志結(jié)束序列號位置(LSN),輸入NULL,表示查找到日志最后的結(jié)束位置;

4、通過sys.fn_dblog最后定位到的結(jié)果,只能顯示object_id,找不到具體的表名,如果有多個用戶做了大量的drop操作時,找出的結(jié)果也非常多,可能得不到想要的結(jié)果;

5、如果在刪除表時,用戶指定了事物名稱,在使用sys.fndblog查找結(jié)果的時候,[Transaction Name]的值必須使用用戶指定的事物名稱才能出結(jié)果;


如何在云數(shù)據(jù)庫 SQL Server中找出刪除的文件呢?.jpg


6、如果在刪除表時,用戶手動開啟了事物,但是并沒有指定事物名稱,在使用sys.fndblog查找結(jié)果的時候,[Transaction Name]的值要使用user_transaction才能有結(jié)果。


云數(shù)據(jù)庫 SQL Server.jpg


二、操作步驟

1、準(zhǔn)備測試數(shù)據(jù)

2、查看student表的object_id(和一會找出來的對比一下是否一致)

3、創(chuàng)建一個具有test庫dba權(quán)限的用戶dbinfo

4、使用dbinfo用戶登錄數(shù)據(jù)庫刪除student表

5、使用系統(tǒng)函數(shù)sys.fn_dblog找出相關(guān)信息

6、根據(jù)事物ID,找出被刪除的對象

7、找出SQLServer中默認(rèn)的trace的path路徑

8、根據(jù)trace path,事務(wù)ID、object_id、開始時間、SPID等信息找到對應(yīng)的trace信息


以上就是如何在云數(shù)據(jù)庫 SQL Server中找出刪除的文件的相關(guān)內(nèi)容。小編講解的操作步驟會比較簡單,如果你有想更加深入了解的話,請咨詢深圳市恒訊科技的相關(guān)技術(shù)人員。



/template/Home/Zkeys724/PC/Static