The query hit the server. Rows streamed back, but not all columns. Some stayed locked behind permissions most tools cannot enforce. This is Mercurial Column-Level Access — precision control over who sees what, down to the single cell.
Column-level access is not just a compliance checkbox. It is a defensive perimeter inside your database. Mercurial’s implementation takes this further by making the rules dynamic, fast, and maintainable as schemas change. Instead of static grants buried in migrations, you define visibility at the column layer, with policies that are evaluated in real time.
When data models grow, the number of sensitive fields grows with them: emails, payment info, internal flags, confidential metrics. Traditional role-based access often leaks here because roles are too broad. Mercurial Column-Level Access binds visibility directly to fields, so even if you query SELECT *, the engine strips unauthorized columns before the result leaves the wire.
Performance is the other half of the equation. Many column-level security solutions push checks into application code. This creates overhead and drift. Mercurial pushes policies into the query path itself, filtering at execution time using optimized permission maps. Tests show almost no latency added compared to raw queries, even under heavy load.