SQL 插入后的列只读无触发器
SQL Column after insert read only without trigger
我必须在插入只读之后创建两列(创建者、创建日期)。这两个字段在插入后不能更改。我知道 sql-triggers 可以解决这个要求。但认为这不是一个舒适的解决方案。
在Create-Table-Statemant
中有解决我的"problem"的方法吗
不,也许是:)
这不能通过单个 table 完成,但可以创建另一个 table 并为其创建 FK。具有适当的安全性(仅通过使用证书签名的存储过程插入主 table 并拒绝对引用的 table 进行修改,除了从同一证书创建的用户以外的所有人,例如),这将使某人很难修改它。当然,一个admin/owner用户是不能被阻止的。
LMK 如果你希望我用代码扩展答案。
也许 Column 权限对您有用。
DENY UPDATE ON dbo.MyTable (Creator, CreationDate) TO SampleRole;
我必须在插入只读之后创建两列(创建者、创建日期)。这两个字段在插入后不能更改。我知道 sql-triggers 可以解决这个要求。但认为这不是一个舒适的解决方案。
在Create-Table-Statemant
不,也许是:)
这不能通过单个 table 完成,但可以创建另一个 table 并为其创建 FK。具有适当的安全性(仅通过使用证书签名的存储过程插入主 table 并拒绝对引用的 table 进行修改,除了从同一证书创建的用户以外的所有人,例如),这将使某人很难修改它。当然,一个admin/owner用户是不能被阻止的。
LMK 如果你希望我用代码扩展答案。
也许 Column 权限对您有用。
DENY UPDATE ON dbo.MyTable (Creator, CreationDate) TO SampleRole;