是否可以阻止对sql中的行进行任何更改?
假设记录已创建。但是一旦它被创建,我就不希望记录被修改过。
因此,用户仍然可以尝试执行更新表set column = value ..但这会引发错误,导致无法对其进行修改。
答案 0 :(得分:3)
是的,你可以使用触发器,只要用户不做这样的事情
alter table disable trigger
update table...
您也可以拒绝对该列进行更新(SQL Server 2005及更高语法)
DENY UPDATE ON OBJECT::TableName(ColumnName) TO UserNAme;
答案 1 :(得分:2)
你应该在桌子上放一个触发器。
触发器可以用旧值替换任何新值,静默拒绝更新,也可以向用户抛出异常,说不允许更新。
OR
您可以为用户分配INSERT权限,但不能为UPDATE权限分配。
答案 2 :(得分:1)
如果SQL服务器允许这种细粒度的访问控制,最简单的方法是REVOKE UPDATE ON TABLE。
请注意,恶意用户仍然可以删除,然后插入另一个“已更改”记录。