对于一个项目,我需要实现一个不可变并且仅允许新条目的数据库。 在任何情况下都不能编辑或删除条目。
我正在考虑一个仅允许管理员编辑和删除的数据库(仅限我自己)。但是,我不确定这是否100%安全,或者是否有可能非法获得管理员权限并伪造数据。因此,最好的解决方案是拥有一个首先不提供编辑或删除功能的数据库。
建议表示赞赏!谢谢
答案 0 :(得分:0)
PostgreSQL自9.5起支持Row Security Policies,该版本使您可以根据用户和/或表中的某些字段值定义选择,插入,删除和更新策略。您可能会在这里找到要搜索的内容。
答案 1 :(得分:0)
最简单的方法是向用户授予对INSERT/UPDATE/DELETE
的分离权限,但是对于某些业务规则来说可能不够。但是,许多DBMS(例如SQL Server)都支持INSTEAD OF triggers,它可以悄悄地绕过任何DELETE/UPDATE
并处理INSERT
,具体取决于您在触发器代码中实现的自定义条件。
您还可以定义一个具有INSTEAD OF触发器的可更新视图,以仅用于插入数据。