BEFORE和AFTER DML操作之间有什么区别?(行级安全性)

5

我已经为我的Ms Sql Server数据库创建了安全策略。我试图弄清楚BEFORE和AFTER dml操作之间的区别,以及使用它的原因。我找不到关于这个主题的清晰解释。

CREATE SECURITY POLICY [Security].DealershipsCarsFilter 
    ADD FILTER PREDICATE [Security].fn_securitypredicate(DealershipId)   
        ON dbo.[DealershipsCars],  
    ADD BLOCK PREDICATE [Security].fn_securitypredicate(DealershipId)   
        ON dbo.[DealershipsCars] AFTER INSERT
    WITH (STATE = ON);  
1个回答

3
对于 UPDATE 操作,您可以为 BEFOREAFTER 指定不同的策略,以便在应用更新之前评估行中的旧值,在应用更新之后评估行中的新值。或者您可能希望相同的策略在两种情况下都适用。选择权在您手中。
对于 INSERTDELETE,您只能分别选择 AFTERBEFORE,因为在另一状态下这些行不存在。
这就是说,这里的“before”和“after”没有深层技术含义,而是采用了它们的纯英文含义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接