Column-Level Security
Column-level security is a control that restricts who can see or use the data held in specific columns of a table or view, rather than restricting access to the whole table. For example, one group of users might see a customer table without a column containing sensitive identifiers, while another group with greater privileges can view that column. This differs from row-level security, which limits which records (rows) a user can access.
Column-level security governs access to individual columns within a table or view, and its enforcement is typically independent of view definitions, so that restrictions apply whether or not a view is authorized (as described for Google BigQuery). Implementations vary by platform: in Snowflake, column-level security is applied by attaching a masking policy to a column in a table or view, controlling the values returned to a given user or role; in Microsoft Power Platform, column-level (field-level) security configurations are organization-wide and applied to specific columns. This entry describes the access-control concept and platform-specific behaviors named in the evidence only. It does not cover row-level security mechanics beyond the noted contrast, encryption at rest or in transit, key management, or the question of whether masking or restriction alone renders underlying data non-personal for regulatory purposes; those determinations depend on jurisdiction, implementation, and context.
Why it matters
Column-level security addresses a common gap in access control: a user may have a legitimate need to work with a table while having no business justification to see every field within it. Sensitive identifiers, contact details, or other regulated data often sit alongside operational fields that many users need. By restricting access at the column level rather than the whole table, organizations can apply the principle of least privilege more precisely, allowing broad access to a dataset while keeping specific columns hidden or masked from users who lack sufficient privileges.
This granularity supports data minimization and need-to-know practices that governance and security programs generally expect. It also helps separate the concerns of who can query a dataset from what values are actually returned to them, which is useful when the same table serves multiple audiences with different entitlements. Column-level security is an information security control that operates within a platform; it does not, on its own, determine whether the underlying data remains personal data for regulatory purposes. Whether masking or restricting a column changes the legal characterization of the data depends on jurisdiction, implementation, and context, and that determination is out of scope for this control.
Because its behavior differs across platforms, teams should not assume that column-level security works identically everywhere. In Google BigQuery, for example, its enforcement on views is independent of whether the view is an authorized view. In Snowflake, it is applied by attaching a masking policy to a column. In Microsoft Power Platform, column-level (field-level) security configurations are organization-wide. These distinctions matter when designing controls and when demonstrating, with evidence, that access is appropriately restricted.
Who it's relevant to
Inside CLS
Common questions
Answers to the questions practitioners most commonly ask about CLS.