有没有办法保护所有现有行不在 SQL table 中被编辑?

Is there a way to protect all existing rows from being edited in an SQL table?

假设开发人员有 table 条他们不想编辑的记录,因为这些值是敏感的并且是根据当时的环境生成的。出于完整性目的 - table 中的记录可以添加,绝不能编辑。

在模型中,程序员设置了访问修饰符,这样只有构造函数可以设置属性,但一旦设置,就不能修改它们(反射除外)。

如何将相同的概念灌输到 table 中的行中?

table 可以通过撤销数据库用户的更新和删除权限来保护。然后在每个用户级别实施此解决方案。

所有主要数据库系统中都存在类似的概念。 有关权限的更多信息 (Oracle):https://www.techonthenet.com/oracle/grant_revoke.php

您还可以在 UPDATE/DELETE 之前使用触发器来引发错误,这将阻止未被撤销权限的用户进行更改。 有关触发器 (Oracle) 的更多信息:https://www.techonthenet.com/oracle/triggers/before_update.php

如果您不想使用用户权限,那么您可以创建一个前 update/delete 触发器并在该触发器内引发错误,这将不允许用户更新任何记录。尽管拥有触发器访问权限的用户可以修改或删除触发器。