我必须创建两列(创建者,创建日期),这是在readonly插入之后。插入后无法更改这两个字段。我知道使用sql-triggers来解决这个问题是可行的。但是认为这不是一个舒适的解决方案。
是否有解决方案可以在Create-Table-Statemant
答案 0 :(得分:1)
不,也许是的!)
使用单个表无法完成此操作,但可以创建另一个表并为其创建FK。有适当的安全性(仅通过使用证书签名的存储过程插入主表,并拒绝对除了从同一证书创建的用户以外的所有人的引用表的修改,例如),这将使某人很难修改它。当然,管理员/所有者用户无法停止。
LMK如果您希望我用代码扩展答案。
答案 1 :(得分:1)
也许“列”权限适合您。
DENY UPDATE ON dbo.MyTable (Creator, CreationDate) TO SampleRole;