Sql server 2005 Sql阻止修改行

Sql server 2005 Sql阻止修改行,sql-server-2005,Sql Server 2005,可以防止对sql中的行进行任何更改吗 假设记录已创建。但一旦它被创建,我就不想再修改记录了 因此,用户仍然可以尝试更新表集合column=value。。但这会引发一个错误,防止它被修改成类似的东西。您应该在表上放置一个触发器 触发器可以用旧值替换任何新值,以静默方式拒绝更新,也可以向用户抛出异常,表示不允许更新 或 您可以将INSERT权限分配给用户,但不能将UPDATE权限分配给用户。您应该在表上设置触发器 触发器可以用旧值替换任何新值,以静默方式拒绝更新,也可以向用户抛出异常,表示不允许更新

可以防止对sql中的行进行任何更改吗

假设记录已创建。但一旦它被创建,我就不想再修改记录了


因此,用户仍然可以尝试更新表集合column=value。。但这会引发一个错误,防止它被修改成类似的东西。

您应该在表上放置一个触发器

触发器可以用旧值替换任何新值,以静默方式拒绝更新,也可以向用户抛出异常,表示不允许更新


您可以将INSERT权限分配给用户,但不能将UPDATE权限分配给用户。

您应该在表上设置触发器

触发器可以用旧值替换任何新值,以静默方式拒绝更新,也可以向用户抛出异常,表示不允许更新


您可以将插入权限分配给用户,但不能将更新权限分配给用户。

是的,如果用户不执行类似操作,您可以使用触发器执行此操作

alter table disable trigger
update table...
您还可以像这样拒绝该列的更新(SQL Server 2005及以上语法)


是的,如果用户不这样做,您可以使用触发器来完成

alter table disable trigger
update table...
您还可以像这样拒绝该列的更新(SQL Server 2005及以上语法)


如果SQLServer允许这种细粒度的访问控制,最简单的方法是撤销表上的更新


请注意,恶意用户仍然可以删除,然后插入另一条“已更改”的记录。

如果SQL server允许这种细粒度的访问控制,最简单的方法是撤销表上的更新


请注意,恶意用户仍然可以删除,然后插入另一条“已更改”的记录。

当然,如果您使用了存储的过程,并且没有更新过程wirtten,并且用户没有对表的直接访问权限,那么他们就无法更新记录,因为他们没有可用的方法。并确保写入触发器来处理多个记录更新。当然,如果您使用了存储过程,并且没有更新过程wirtten,并且用户没有对表的直接访问权限,那么他们就不能更新记录,因为他们没有可用的方法。并确保写入触发器以处理多个记录更新