假定开发人员有一个不想编辑的记录表,因为这些值是敏感的,并且是基于当时的环境生成的。出于完整性目的,可以在表中添加记录,而无需进行编辑。
在模型中,程序员设置了访问修饰符,使得只有构造函数才能设置属性,但是一旦设置了属性,就不能对其进行修改(禁止反射)。
如何将相同的概念灌输到表中的行中?
答案 0 :(得分:7)
可以通过撤销数据库用户对UPDATE和DELETE的权限来保护表。然后在每个用户级别上实现该解决方案。
相似的概念存在于所有主要的数据库系统中。 有关权限的更多信息(Oracle):https://www.techonthenet.com/oracle/grant_revoke.php
您还可以在UPDATE / DELETE之前使用触发器来引发错误,这也将阻止尚未撤消权限的用户进行更改。 有关触发器的更多信息(Oracle):https://www.techonthenet.com/oracle/triggers/before_update.php
答案 1 :(得分:2)
如果您不希望使用用户权限,则可以创建更新/删除之前触发器,并在该触发器内引发错误,这将不允许用户更新任何记录。尽管具有触发器访问权限的用户可以修改或删除触发器。