如何保护数据库结构

所有,我有一个新的应用程序使用pipe理数据库(SQL Server 2008 R2)来强制执行数据结构约束。 这个数据库的表结构是不惜一切代价维护的,结构不被维护的最大危险是通过用户进入数据库并手动修改。

在这种情况下,我最好在我希望“保护”的表上创build校验和,并且每次在应用程序中执行某些操作时都检查这个校验和? 或者,我最好做所有的“保护”服务器端? 也就是说,创造一个TRIGGER说

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

任何最好的方式来实现我想要的build议是最感激的。

最好的办法是限制进入责任方。 任何能够login到SQL服务器并更改数据库中的东西的人都应该随时修复它。 在这之间,和好的备份,也许复制,你应该设置为最糟糕的事件。