dml操作之前和之后有什么区别? (行级安全)

时间:2018-10-26 09:05:28

标签: sql sql-server database multi-tenant

我已经为我的Sql Server数据库创建了安全策略。我正在尝试找出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 个答案:

答案 0 :(得分:3)

对于UPDATE,您可以为BEFOREAFTER指定不同的策略,以允许您在应用更新之前评估行中的旧值,并在其中应用新值。应用更新后的行。或者,您可能希望在两种情况下都应用相同的策略。选择是您的。

对于INSERTDELETE,您只能分别选择AFTERBEFORE,因为行中的行不存在其他状态。

长话不说,这里前后没有什么深层次的技术意义,取而代之的是简单的英语含义。