如何保护数据库结构

如何保护数据库结构

大家好,我有一个新的应用程序,它使用管理数据库 (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

任何有关如何以最佳方式实现我目标的建议我都非常感谢。

答案1

最好的方法是限制责任方的访问权限。任何能够登录 SQL 服务器并更改数据库中内容的人都应该负责修复它。除此之外,还有良好的备份(可能还有复制),您应该可以为大多数不良事件做好准备。

相关内容