是否有可能阻止任何更改在SQL中的行?Sql阻止行被修改
假设记录已创建。但一旦创建,我不希望记录被修改。
所以用户仍然可以尝试做一个更新表设置column = value ..但是这会引发一个错误,阻止它被修改。
是否有可能阻止任何更改在SQL中的行?Sql阻止行被修改
假设记录已创建。但一旦创建,我不希望记录被修改。
所以用户仍然可以尝试做一个更新表设置column = value ..但是这会引发一个错误,阻止它被修改。
是的,你可以与提供的用户不会做这样的事情
alter table disable trigger
update table...
,你也可以拒绝更新该列像这样的(SQL Server 2005和向上语法)
触发做DENY UPDATE ON OBJECT::TableName(ColumnName) TO UserNAme;
你应该在桌子上放置一个触发器。
触发器可以用旧值替换任何新值,默默拒绝更新,也可以向用户抛出异常,表示不允许更新。
OR
您可以将权限分配给用户,但不是UPDATE权限。
如果SQL服务器允许这种细粒度的访问控制,最简单的方法是REVOKE UPDATE ON TABLE。
请注意,恶意用户仍然可以删除,然后插入另一个“已更改”记录。
当然,如果您使用了存储过程并且没有更新过程,并且用户没有对该表的直接访问权限,那么他们无法更新该记录,因为没有方法可供他们使用。 并确保编写触发器来处理多个记录更新 – HLGEM 2010-05-26 20:38:55