插入后的SQL列只读不带触发器

时间:2015-03-26 09:16:53

标签: sql sql-server readonly create-table

我必须创建两列(创建者,创建日期),这是在readonly插入之后。插入后无法更改这两个字段。我知道使用sql-triggers来解决这个问题是可行的。但是认为这不是一个舒适的解决方案。

是否有解决方案可以在Create-Table-Statemant

中解决我的“问题”

2 个答案:

答案 0 :(得分:1)

不,也许是的!)

使用单个表无法完成此操作,但可以创建另一个表并为其创建FK。有适当的安全性(仅通过使用证书签名的存储过程插入主表,并拒绝对除了从同一证书创建的用户以外的所有人的引用表的修改,例如),这将使某人很难修改它。当然,管理员/所有者用户无法停止。

LMK如果您希望我用代码扩展答案。

答案 1 :(得分:1)

也许“列”权限适合您。

DENY UPDATE ON dbo.MyTable (Creator, CreationDate) TO SampleRole;