Sql-Server-2008

如何保護數據庫結構

  • April 10, 2012

總之,我有一個使用管理數據庫 (SQL Server 2008 R2) 來強制執行資料結構約束的新應用程序。不惜一切代價維護這個數據庫的表結構是很重要的,不維護該結構的最大危險是通過使用者進入數據庫並手動更改它。

在這種情況下,我是否最好在我希望“保護”的表上建構一個校驗和,並在每次我在應用程序中執行某些操作時對其進行檢查?或者,我最好做所有的“保護”伺服器端?也就是說,創建一個 TRIGGER 說

CREATE TRIGGER EnsureIntegrity ON ProtectedTable
FOR INSERT, UPDATE, DELETE AS
BEGIN   
   IF (EXISTS (Some_Condidtion)
       RAISERROR(/*Some Error Message*/)
           ROLLBACK TRANSACTION
END

任何關於實現我想要的最佳方式的建議都非常感謝。

最好的方法是限制對責任方的訪問。任何能夠登錄到 SQL 伺服器並更改數據庫中的內容的人都應該為修復它而上鉤。在此之間,以及良好的備份,也許是複制,你應該為最壞的情況做好準備。

引用自:https://serverfault.com/questions/378102