我想在我的SQL Server数据库中为表使用仅附加模型,并且正在寻找一种强制执行此用法的方法。我希望有一个限制,我可以添加到表格,不允许更新,但无法找到这些行。
我可以通过表级权限拒绝SQL用户的更新权限,但我不能保证另一个SQL用户无法更新该表。
DENY DELETE ON [dbo].[append_only] TO [public]
DENY UPDATE ON [dbo].[append_only] TO [public]
触发器可以完成这项工作,但我多年来一直避免这些因为我认为它们不容易被发现。
我还有其他选择吗?
答案 0 :(得分:0)
可以定义触发器,以便在任何SQL用户尝试和更新或删除时抛出错误。
create table append_only (
id int identity primary key,
val nvarchar(50)
)
create or alter trigger append_only_monitor
on append_only
instead of update, delete
as throw 51000, 'This table is meant to be append-only.', 1;