EPC Group - Enterprise Microsoft AI, SharePoint, Power BI, and Azure Consulting
G2 High Performer Summer 2025, Momentum Leader Spring 2025, Leader Winter 2025, Leader Spring 2026
BlogContact
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌

EPC Group

Enterprise Microsoft consulting with 29 years serving Fortune 500 companies.

(888) 381-9725
contact@epcgroup.net
4900 Woodway Drive, Suite 830
Houston, TX 77056

Follow Us

Solutions

  • M&A Practices

    • M&A Tenant Migration
    • Carve-Out Migration
    • Private Equity Practice
    • Engagement Operating Model
  • All Services
  • Microsoft 365 Consulting
  • AI Governance
  • Azure AI Consulting
  • Cloud Migration
  • Microsoft Copilot
  • Data Governance
  • Microsoft Fabric
  • Dynamics 365
  • Power BI Consulting
  • SharePoint Consulting
  • Microsoft Teams
  • vCIO / vCAIO Services
  • Large-Scale Migrations
  • SharePoint Development

Industries

  • All Industries
  • Healthcare IT
  • Financial Services
  • Government
  • Education
  • Teams vs Slack

Power BI

  • Case Studies
  • 24/7 Emergency Support
  • Dashboard Guide
  • Gateway Setup
  • Premium Features
  • Lookup Functions
  • Power Pivot vs BI
  • Treemaps Guide
  • Dataverse
  • Power BI Consulting

Company

  • About Us
  • Our History
  • Microsoft Gold Partner
  • Case Studies
  • Testimonials
  • Fixed-Fee Accelerators
  • Blog
  • Resources
  • All Guides & Articles
  • Video Library
  • Client Reviews
  • Engagement Operating Model
  • FAQ
  • Contact
  • Schedule a consultation

Microsoft Teams

  • Teams Questions
  • Teams Healthcare
  • Task Management
  • PSTN Calling
  • Enable Dial Pad

Azure & SharePoint

  • Azure Databricks
  • Azure DevOps
  • Azure Synapse
  • SharePoint MySites
  • SharePoint ECM
  • SharePoint vs M-Files

Comparisons

  • M365 vs Google
  • Databricks vs Dataproc
  • Dynamics vs SAP
  • Intune vs SCCM
  • Power BI vs MicroStrategy

Legal

  • Sitemap
  • Privacy Policy
  • Terms
  • Cookies

About EPC Group

EPC Group is a Microsoft consulting firm founded in 1997 (originally Enterprise Project Consulting, renamed EPC Group in 2005). 29 years of enterprise Microsoft consulting experience. EPC Group historically held the distinction of being the oldest continuous Microsoft Gold Partner in North America from 2016 until the program's retirement. Because Microsoft officially deprecated the Gold/Silver tiering framework, EPC Group transitioned to the modern Microsoft Solutions Partner ecosystem and currently holds the core Microsoft Solutions Partner designations.

Headquartered at 4900 Woodway Drive, Suite 830, Houston, TX 77056. Public clients include NASA, FBI, Federal Reserve, Pentagon, United Airlines, PepsiCo, Nike, and Northrop Grumman. 6,500+ SharePoint implementations, 1,500+ Power BI deployments, 500+ Microsoft Fabric implementations, 70+ Fortune 500 organizations served, 11,000+ enterprise engagements, 200+ Microsoft Power BI and Microsoft 365 consultants on staff.

About Errin O'Connor

Errin O'Connor is the Founder, CEO, and Chief AI Architect of EPC Group. Microsoft MVP multiple years, first awarded 2003. 4× Microsoft Press bestselling author of Windows SharePoint Services 3.0 Inside Out (MS Press 2007), Microsoft SharePoint Foundation 2010 Inside Out (MS Press 2011), SharePoint 2013 Field Guide (Sams/Pearson 2014), and Microsoft Power BI Dashboards Step by Step (MS Press 2018).

Original SharePoint Beta Team member (Project Tahoe). Original Power BI Beta Team member (Project Crescent). FedRAMP framework contributor. Worked with U.S. CIO Vivek Kundra on the Obama administration's 25-Point Plan to reform federal IT, and with NASA CIO Chris Kemp as Lead Architect on the NASA Nebula Cloud project. Speaker at Microsoft Ignite, SharePoint Conference, KMWorld, and DATAVERSITY.

© 2026 EPC Group. All rights reserved. Microsoft, SharePoint, Power BI, Azure, Microsoft 365, Microsoft Copilot, Microsoft Fabric, and Microsoft Dynamics 365 are trademarks of the Microsoft group of companies.

‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
Power BI Row-Level Security (RLS): Enterprise Guide 2026 - EPC Group enterprise consulting

Power BI Row-Level Security (RLS): Enterprise Guide 2026

Power BI Row-Level Security enterprise guide — static vs dynamic, USERPRINCIPALNAME vs USEROBJECTID, group-based, multi-tenant, OLS combinations, performance tuning, Copilot integration.

HomeBlogPower BI
Back to BlogPower BI

Power BI Row-Level Security (RLS): Enterprise Guide

Power BI Row-Level Security enterprise guide — static vs dynamic, USERPRINCIPALNAME vs USEROBJECTID, group-based, multi-tenant, OLS combinations, performance tuning, Copilot integration.

EO
Errin O'Connor
CEO & Chief AI Architect
•
February 12, 2026
•
5 min read
Power BIRow-Level SecurityRLSDAXMicrosoft EntraMicrosoft FabricPower BI Copilot
Power BI Row-Level Security (RLS): Enterprise Guide 2026
5 min readPublished February 12, 2026

Key Takeaways

  • Power BI Row-Level Security enterprise guide — static vs dynamic, USERPRINCIPALNAME vs USEROBJECTID, group-based, multi-tenant, OLS combinations, performance tuning, Copilot integration.

Power BI Row-Level Security (RLS) Enterprise Guide (2026)

Row-Level Security (RLS) is the authorization layer in Power BI that restricts which rows a user sees in a report or dataset. Done well, RLS scales to Fortune 500 with thousands of users, dozens of authorization patterns, and integrates with Microsoft Entra ID, Microsoft Fabric, and Microsoft Copilot.

This is the working enterprise RLS guide EPC Group uses for Fortune 500 Power BI deployments — pattern selection, dynamic vs static RLS, performance tuning, multi-tenancy, and integration with Object-Level Security (OLS) and sensitivity labels.

EPC Group has implemented Power BI RLS for Fortune 500 healthcare, financial services, government, manufacturing, and technology since the Power BI GA wave (2015).

TL;DR — RLS Architecture Decision Matrix

Pattern Use Case
Static RLS Hard-coded role membership, low scale
Dynamic RLS via USERPRINCIPALNAME() Identity-driven authorization (most common)
Dynamic RLS via USEROBJECTID() Microsoft Entra Object ID anchored
Path-based RLS (Org Hierarchy) Manager sees own + all reports
Group-based RLS (Microsoft Entra) Authorization tied to Microsoft Entra group
Multi-tenant RLS SaaS scenarios with one model serving many customers

Combine with Object-Level Security (OLS) when columns must be hidden, and sensitivity labels for Microsoft Copilot grounding control.

Pattern 1: Static RLS

-- Role: "Northwest Region"
-- Filter on Sales table
[region] = "Northwest"

Use case: Small number of static authorization scopes that never change.

Limitation: Hard to maintain, doesn't scale beyond ~10 roles.

Pattern 2: Dynamic RLS via USERPRINCIPALNAME()

-- Role: "Sales Rep"
-- Filter on Sales table
[sales_rep_email] = USERPRINCIPALNAME()

Use case: Each user sees their own data. Most common pattern.

-- Role: "Department Lead"
-- Filter on Sales table via department mapping
[department_id] IN
    LOOKUPVALUE(
        Departments[department_id],
        Departments[lead_email], USERPRINCIPALNAME()
    )

Use case: Manager sees their department(s).

Pattern 3: Dynamic RLS via USEROBJECTID()

-- Role: "Project Member"
-- Filter on Project table via Microsoft Entra Object ID
[project_id] IN
    SELECTCOLUMNS(
        FILTER(
            ProjectMembership,
            ProjectMembership[user_oid] = USEROBJECTID()
        ),
        "project_id", ProjectMembership[project_id]
    )

Use case: Anchored on Microsoft Entra ID Object ID rather than UPN. More resilient to email/UPN changes during organizational moves.

Pattern 4: Path-Based RLS (Organizational Hierarchy)

-- Role: "Manager Hierarchy"
-- See own data + all subordinates
PATHCONTAINS(Employees[manager_path], LOOKUPVALUE(
    Employees[employee_id],
    Employees[email], USERPRINCIPALNAME()
))

Use case: Hierarchical authorization where manager sees own + entire reporting chain.

Implementation: Pre-compute org hierarchy manager_path column using PATH() function during ETL, then PATHCONTAINS() at query time.

Pattern 5: Group-Based RLS (Microsoft Entra Groups)

Best practice for enterprise scale — authorization tied to Microsoft Entra group membership rather than per-user mappings.

-- Role: "Region Group Member"
[region_id] IN
    LOOKUPVALUE(
        RegionGroupMapping[region_id],
        RegionGroupMapping[entra_group_oid], <user's group OIDs>
    )

Pattern: Power BI semantic model has a RegionGroupMapping table that maps Microsoft Entra group OIDs to data scopes. Application code (or refresh-time prep) snapshots user-to-group mapping.

Advantage: Authorization changes via Microsoft Entra group membership flow automatically. No per-user model update.

Pattern 6: Multi-Tenant RLS (SaaS Scenarios)

For software vendors embedding Power BI for multi-customer SaaS:

-- Role: "Tenant Filter"
[customer_id] = USERPRINCIPALNAME()  -- typically configured via JWT claim

Multi-tenant pattern requires:

  • Single semantic model serves all tenants
  • Customer ID is filterable column on every fact table
  • Embed token provided via service principal with effective_identity claim
  • Power BI Premium or PPU capacity

Combining RLS with Object-Level Security (OLS)

OLS hides specific columns or tables from specific users. Useful when:

  • Column-level visibility differs by role (e.g., Salary visible to HR only)
  • Table is sensitive but other tables in the model are general-access
  • Compliance requires column masking
-- Role: "Standard User" — OLS rule
-- Hides Salary column
TABULAR EDITOR: select Salary column → Object Level Security → Standard User → None

OLS is configured via Tabular Editor or XMLA endpoint, not Power BI Desktop UI.

Combining RLS with Sensitivity Labels

Microsoft Purview sensitivity labels on Power BI:

  • Apply at semantic model level
  • Enforce encryption and access policies
  • Block Microsoft Copilot grounding for Restricted-tier
  • Enforce DLP policies on report export

RLS + sensitivity label = layered authorization (RLS limits rows, label enforces encryption + Copilot grounding control).

Performance Tuning

RLS Performance Considerations

RLS adds query overhead. Common patterns and impact:

Pattern Query Overhead
Static RLS Negligible
Dynamic via USERPRINCIPALNAME() with LOOKUPVALUE Low
Dynamic via USEROBJECTID() with SELECTCOLUMNS/FILTER Low-Medium
Path-based with PATHCONTAINS Medium
Group-based with multi-table join Medium-High
Multi-tenant with effective_identity Low (Power BI optimizes)

Optimization Patterns

  • Pre-compute mapping tables during ETL rather than computing at query time
  • Index mapping table columns in DirectQuery scenarios
  • Aggregations for common queries (Power BI Premium feature)
  • Composite models to mix Import and DirectQuery
  • Reduce table cardinality in mapping tables
  • Test with Performance Analyzer in Power BI Desktop before production

DirectQuery Considerations

DirectQuery RLS pushes filters down to the underlying source. Critical:

  • Source must respect RLS (SQL Server, Microsoft Fabric Warehouse, Azure SQL handle this natively)
  • Indexes on RLS predicate columns
  • Source query plan optimization for parameterized predicates

DirectLake Considerations (Microsoft Fabric)

DirectLake mode in Microsoft Fabric reads Parquet/Delta from OneLake without import. RLS works natively. Performance is typically 60-80% faster than Import for typical workloads.

Microsoft Fabric Integration

OneLake Security

Microsoft Fabric OneLake supports:

  • Workspace-level role-based access control
  • Lakehouse / Warehouse-level access control
  • Row-level security at warehouse level (T-SQL CREATE SECURITY POLICY)
  • Column-level security at warehouse level
  • Sensitivity label enforcement

Power BI semantic models on Microsoft Fabric inherit Fabric warehouse RLS, which can complement (or in some cases replace) Power BI RLS.

Microsoft Copilot for Power BI

Power BI Copilot respects:

  • RLS (Copilot answers limited to user's row scope)
  • OLS (Copilot can't reference hidden columns)
  • Sensitivity labels (Copilot blocks Restricted-tier grounding)

This is a critical differentiator — Power BI Copilot is the only major BI Copilot that natively respects RLS/OLS without custom configuration.

Frequently Asked Questions

Should we use RLS or build separate reports per role?

RLS, almost always. Separate reports per role create maintenance burden and inconsistency. RLS scales to thousands of users with one report. The exception is when authorization is so different per role that data semantics differ (in which case, consider separate semantic models).

Static or dynamic RLS?

Dynamic, almost always. Static doesn't scale and requires manual updates per personnel change. Dynamic via USERPRINCIPALNAME() or USEROBJECTID() with mapping tables is the EPC Group standard.

How do we handle external users (B2B guests)?

Microsoft Entra B2B guest users can authenticate to Power BI. RLS works for B2B guests via USERPRINCIPALNAME() — but the UPN format differs (guest_user_email#EXT#@hosttenant.onmicrosoft.com). Mapping tables must accommodate this.

How does RLS work with embedded Power BI?

Embedded Power BI (Power BI Embedded for ISVs, embedded for organization) uses the embed token to assert user identity. App owns data scenario uses effective_identity to assert RLS roles per user. User owns data scenario uses the user's actual identity.

Can RLS be bypassed?

Power BI workspace owners and Premium capacity admins can bypass RLS via Tabular Editor or by editing the model. Mitigation: Microsoft Purview audit log captures admin actions, role-based admin separation, and PIM (Privileged Identity Management) for elevation.

How do we test RLS?

  • Power BI Desktop "View as" → select role → run report
  • Power BI Service "Test as another user" → enter UPN → run report
  • Automated testing via Power BI REST API + service principal

Who delivers Power BI RLS engagements?

EPC Group senior architects with Power BI experience since the Project Crescent beta (2010-2013). Errin O'Connor was on the original Microsoft Power BI beta team and is a 4-time Microsoft Press author including a Power BI book.

Next Steps

Schedule a 30-minute Power BI RLS discovery call at /schedule or call (888) 381-9725. Senior architects (not sales) take discovery calls.

Related reading: Power BI Premium Pricing Licensing Guide, Healthcare Analytics Power BI HIPAA Enterprise Guide, Government Analytics Power BI FedRAMP Enterprise Guide, and Microsoft Fabric Quickstart Assessment.

Share this article:
EO

Errin O'Connor

CEO & Chief AI Architect

Microsoft Press bestselling author with 29 years of enterprise consulting experience.

View Full Profile

Related Articles

Power BI

Tableau to Power BI Migration: Enterprise Consolidation Guide (2026)

Why Fortune 500 enterprises are consolidating Tableau workloads to Microsoft Power BI in 2026. The 4-phase migration runbook, cost comparison, governance continuity, and Power BI Beta Team founding-member methodology from 29 years of Microsoft consulting.

Power BI

Microsoft Fabric vs Power BI Premium: When to Migrate (2026)

Microsoft is consolidating Power BI Premium capacity into Microsoft Fabric F-SKUs. When existing Power BI Premium customers should migrate, the F64 inflection point, and the migration playbook for Fortune 500.

Power BI

Power BI May 2026 Update: Visual Calculations GA, Exploration Perspective, and Copilot Summarize — Enterprise Implementation Guide

Power BI May 2026 enterprise rollout: Visual Calculations GA, Exploration Perspective, Copilot Summarize. Governance patterns, migration plan, semantic model impact.

Need Help with Power BI?

Our team of experts can help you implement enterprise-grade power bi solutions tailored to your organization's needs.

Power BI Consulting ServicesSchedule a Consultation