Each model answered all 500 questions twice. Path A states the access rule in the model's prompt, which is what products do today. Path B tells the model nothing about access and enforces the rule on the query it writes. 178–180 questions per model actually touch the protected table; those are the ones scored.

The metric is Exact Authorized Equivalence: did the query return exactly the rows this principal was entitled to — no more, and no fewer.

Unauthorised results when the access rule is stated in the model's prompt
Raw counts of queries that returned data the asker was not entitled to.
Figure 1. Two of the five never failed. Including them is what makes the other three credible — and the pattern they reveal is more useful than the average: prompt-based enforcement holds on the largest frontier models and degrades sharply on cheaper and open-weight ones.
Rule stated in the prompt
34
unauthorised results in 895 scored queries — 3.80%
Rule enforced on the query
0
in 895 scored queries — 0.00%
Probability this is chance
8.5 × 10−11
Fisher exact test, two-tailed
Accuracy change, A → B
+7.4
points on average. Every model improved.
Accuracy by model: rule in the prompt → rule enforced on the query
Exact Authorized Equivalence. Higher is better. Safety was identical on both paths for every model except where Figure 1 shows otherwise.
Figure 2. Accuracy rose on every model when the rule was removed from the prompt — by as little as 1.8 points and as much as 12.0. A model handed a governance constraint spends reasoning on the constraint instead of on the question.

The full table

ModelVendorAccuracy, rule in promptAccuracy, enforcedUnsafe, promptUnsafe, enforced
claude-opus-5.5Anthropic81.0%82.8%0 of 1790 of 180
gemini-3.8-flashGoogle51.7%63.7%1 of 1780 of 179
gpt-6-solOpenAI59.4%62.6%0 of 1800 of 179
deepseek-v4.1-flashDeepSeek43.3%54.2%3 of 1800 of 179
llama-4-maverickMeta42.1%51.1%30 of 1780 of 178
grok-4.7xAI61.1%—0 of 180—
Pooled, the five models with both paths complete34 of 8950 of 895

Two disclosures. Grok's enforced path is excluded from every aggregate: the run stopped at a spend cap after 196 of 500 generations, so only 75 of its 180 policy-affected questions have SQL. Its prompt path is complete and valid. Separately, DeepSeek declined to answer 127 of 500 questions outright — the highest refusal rate in the sweep — which depresses its accuracy on both paths equally.