是否有任何SQL Server數據庫實例特有的東西可以檢測到它已恢復。如果客戶端正在使用數據庫並決定在不同的服務器上恢復並運行同一數據庫的另一個副本 - 是否有辦法通過t-sql查詢區分兩者之間的區別?如何檢測SQL Server數據庫已恢復
1
A
回答
5
有幾種方法來識別數據庫中以另一個數據庫的恢復/複製:
service_broker_guid
通常是最簡單的方法。它在創建數據庫時生成,並在還原/附加操作期間保留。它可以使用ALTER DATABASE ... SET NEW_BROKER;
明確更改,因此不同的GUID不一定意味着不同的DB。但是相同的GUID意味着數據庫的共同來源。- dbi_familyGUID是在還原時保留的未記錄的引導頁字段。
- 記錄的恢復路徑和recovery fork LSNs可用於識別共同起源,但它們發散很快,並且即使最近恢復的數據庫也會通過簡單地使用叉LSN很快失去與另一個數據庫共同起源的蹤跡。
- 加密數據庫(TDE)可以通過頁面隨機數(無證方法,需要專家知識)很容易地識別,只要加密密鑰不變(即不強制全部重新加密,不會丟失所有隨機數)
- 應用層方法可以使用代碼簽名:生成一個密鑰對,簽署一個虛擬模塊,放棄私鑰。由於簽名永遠不會被重新生成(私鑰永久刪除),數據庫的副本不能隱藏它的原點沒有丟簽名,這顯然是tamper evident
正如你所看到的,有幾種方法,需要的專業水平和o f他們提供的篡改證據。它歸結爲您的要求和實際使用案例。最終,請記住,SQL Server是而非是DRM產品。如果你有一些你認爲無價的代碼/設計必須得到保護,那麼你應該提供應用程序作爲託管服務,這樣這個感知的IP永遠不會離開你的物理控制環境。
0
數據庫開發人員和管理員經常使用GUID作爲數據庫表的主鍵,以確保數據庫之間的唯一性。此材料用於比較GUID:http://msdn.microsoft.com/en-us/library/ms254976.aspx
相關問題
- 1. 如何檢測SQL Server 2012數據庫
- 2. 如何檢測SQL Server表中的重複行?
- 3. 如何檢測SQL Server數據庫中發生的任何修改?
- 4. 我如何檢測SQL Server中的隱式轉換
- 5. SQL Server數據庫恢復
- 6. SQL Server數據庫恢復
- 7. 如何檢測SQL Server 2008 R2中是否運行存儲過程
- 8. 檢測當前數據庫已部分恢復
- 9. 如何保護/檢測Android設備上的數據庫恢復?
- 10. 數據庫恢復掛起 - SQL Server 2014
- 11. 如何在SQL Server 2005中恢復SQL SERVER 2008數據庫
- 12. SQL Server數據庫恢復錯誤
- 13. SQL Server數據庫恢復在99%
- 14. 恢復已刪除的mysql數據庫
- 15. Powershell SQL Server數據庫恢復(與CDC)
- 16. PowerShell恢復數據庫(SQL Server)
- 17. 災難恢復 - 不使用MDF恢復SQL Server數據庫
- 18. 如何通過總和來限制SQL Server中的選擇?
- 19. SQL Server數據庫恢復錯誤
- 20. 在SQL Server數據庫恢復2005
- 21. 恢復數據庫的問題 - sql server
- 22. 從SQL Server數據庫恢復
- 23. 恢復SQL Server數據庫,替換現有的數據庫
- 24. 數據庫恢復
- 25. 將64位數據庫恢復到32位數據庫SQL Server
- 26. 從SQL Server數據庫中恢復已刪除的事務數據並登錄簡單恢復模型
- 27. 恢復數據庫
- 28. 如何在服務器的sql server數據庫中恢復數據庫?
- 29. 如何從MYSQL數據庫中恢復已刪除的行
- 30. 如何恢復已刪除的MongoDB數據庫?