Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more
Your file has been submitted successfully. We’re processing it now - please check back in a few minutes to view your report.
What problem does this solve?
Dynamic RLS evaluates USERPRINCIPALNAME() on every query for every user. On a fact table with 10M+ rows and hundreds of security combinations, this kills report performance. Static RLS roles are evaluated once at connection time — but creating and maintaining 500 of them manually is not feasible.
This notebook automates the full lifecycle of static RLS roles using Semantic Link and the Tabular Object Model (TOM): creation, replacement, member assignment, and cleanup of unused roles — all driven from an RLS mapping table in your Lakehouse.
What it does
Requirements
Real world context
Validated on a production model with 10M+ rows, 21 tables, and 500+ roles across multiple dimensions. Report load time dropped significantly after switching from Dynamic RLS to this approach.
https%3A%2F%2Fgithub.com%2Fenekoegiguren%2FSemantic-Link-Static-RLS-Role-Management