I noticed a potential issue with one of the questions regarding block predicates and row-level security. The question is as follows:
Question: Which block predicate prevents users from updating rows to values that violate its row-level security predicate?
The provided answer marked as correct is "AFTER UPDATE." However, I believe this is misleading. Shouldn't the correct answer be "BEFORE UPDATE"?
Reasoning: A BEFORE UPDATE trigger is designed to enforce conditions before an update operation is executed. If the conditions in the BEFORE UPDATE trigger are not met, the update can be blocked, effectively preventing any violations of security policies. In contrast, an AFTER UPDATE trigger only executes after the update has already occurred, which wouldn't be able to prevent the violation of security policies.
I believe this discrepancy might lead students to misunderstand the concepts being tested. Could you please review this and confirm whether the correct answer should indeed be "BEFORE UPDATE"?
Thank you for your attention to this matter.
This question is related to the following Learning Module