jargon

Comparison

Column-level securityvsRow-level security

Column-level security

everyone can query the customer table and only three people can select the date-of-birth column.

Access control applied per column rather than per table. It is what makes broad access to a wide table safe, and it pairs naturally with classification tags so the policy is written once against the tag. Its practical limitation is that derived tables do not inherit it — a model selecting a protected column into a new table has quietly laundered the control unless the platform propagates tags.

Full entry →

Row-level security

the regional manager runs the same query as everyone else and only ever sees their own region's rows.

A policy attached to a table that filters which rows a given principal may see. It lets one modelled table serve every audience instead of maintaining a copy per team, which is the alternative and the reason copies proliferate. The risk is subtle: an aggregate over filtered rows still looks like a complete answer, so a user can be confidently wrong without any indication that rows were removed.

Full entry →

Related comparisons