Glossary/Security, Access & Deployment

Row-Level Security

Row-Level Security is a data access control mechanism that restricts which rows a user can view or modify in a table based on attributes of the user, the data, or the context of the query.

Row-Level Security (RLS) operates at the granularity of individual data rows, commonly used when multiple logical datasets or tenants exist within the same physical table. For example, a sales analytics table containing records for all regions can be restricted so that North America sales reps see only rows where region equals "North America." RLS policies are typically evaluated at query time by the database engine or analytics platform, comparing the user's attributes against row-level conditions.

RLS is essential in multi-tenant systems and when fine-grained data governance is required. Unlike Role-Based Access Control which provides access at the table level, RLS allows multiple users to query the same table while receiving different result sets based on their authorization attributes. This approach avoids maintaining separate tables for each user segment and improves query consistency. Performance considerations are important: RLS evaluation happens during query execution, potentially impacting performance when policies are complex or datasets are large.

Key Characteristics

  • Filters results at query time based on user and context attributes
  • Enables multiple users to query the same table with different visibility
  • Prevents need for separate tables per user segment or tenant
  • Works with row-level filtering conditions (WHERE clauses applied by the system)
  • Performance depends on index selectivity and policy complexity
  • Requires consistent attribute management for policy evaluation

Why It Matters

  • Eliminates operational overhead of maintaining separate tables per user segment or division
  • Reduces data duplication and simplifies ETL processes in multi-tenant environments
  • Ensures users cannot accidentally or intentionally access unauthorized data within their access tier
  • Scales to support thousands of users with different data authorization levels
  • Simplifies compliance auditing by implementing controls at the data layer
  • Reduces query complexity by handling filtering automatically

Example

A multi-tenant SaaS analytics platform stores customer transaction data in a single table. Row-level security policies specify: users can see rows where the customer_id matches any customer they manage. When customer manager Alice queries the transactions table, a policy automatically adds a filter restricting results to her customers. Customer manager Bob queries the same table but receives only his assigned customers, without needing separate queries or table copies.

Coginiti Perspective

Coginiti enables row-level security through semantic model design and platform-specific policies on connected data systems like Snowflake, BigQuery, and Redshift. SMDL relationships can encode row filters that ensure consistent RLS enforcement across all semantic queries; Coginiti's ODBC driver propagates RLS context, enabling Excel and Power BI consumers to access only authorized rows without separate data copies.

See Semantic Intelligence in Action

Coginiti operationalizes business meaning across your entire data estate.