Glossary/Security, Access & Deployment

Column-Level Security

Column-Level Security is a data access control mechanism that restricts which columns a user can access within a table based on their role, department, or other attributes.

Column-Level Security (CLS) operates at the granularity of individual columns or fields, controlling visibility of specific data attributes rather than entire rows. For example, a human resources analytics table might contain salary, bonus, and performance rating columns. While all HR analysts can see the table, column-level security might restrict salary and bonus columns to senior leaders only. This allows different user classes to access the same table without viewing sensitive information.

CLS is commonly used alongside Row-Level Security to implement comprehensive data governance. Where RLS filters which rows are visible, CLS filters which columns are visible. CLS prevents horizontal privilege escalation where a user with access to certain data might see adjacent sensitive columns. Implementation typically occurs at the database or data platform layer through view-based mechanisms, column masking, or native security features. CLS decisions must happen transparently without requiring separate queries for different user classes to maintain usability.

Key Characteristics

  • Restricts column visibility at query time based on user attributes
  • Prevents exposure of sensitive columns to unauthorized users
  • Complements row-level security for comprehensive governance
  • Implemented through database views, masking, or platform-native features
  • Requires schema documentation to track sensitivity classifications
  • Often used with data masking for additional protection of visible columns

Why It Matters

  • Reduces data exposure in sensitive domains like human resources, finance, or compliance
  • Prevents accidental discovery of sensitive columns by users with table-level access
  • Simplifies compliance with regulations requiring segregation of sensitive data attributes
  • Eliminates operational complexity of maintaining separate table structures per role
  • Supports principle of least privilege by exposing only necessary information
  • Improves user experience by showing relevant columns without separate query logic

Example

A financial institution stores customer account data in a single table with columns for account_id, account_type, balance, credit_limit, credit_score, and debt_status. Front-line customer service representatives see account_id, account_type, and balance. Loan officers additionally see credit_score and credit_limit. Risk management sees all columns including debt_status. Column-level security automatically enforces these visibility rules without requiring different views or complex application logic.

Coginiti Perspective

Coginiti enforces column-level security through semantic model design where sensitive dimensions and measures can be hidden or restricted, combined with platform-specific CLS policies on connected systems. SMDL enables declarative definition of which users can access which measures and dimensions; this security model propagates through Semantic SQL, ODBC connections, and all integrated tools without requiring duplicate security logic.

See Semantic Intelligence in Action

Coginiti operationalizes business meaning across your entire data estate.