Microsoft Fabric Security, Explained: OneLake Security, Identity Modes & Engine Enforcement
Learn how Microsoft Fabric enforces security across every engine — from workspace roles and OneLake Security to identity modes and engine-level enforcement.
A plain-English guide to how Microsoft Fabric security really works: control plane vs data plane, workspace role bypass rules, User vs Delegated identity modes, and the engine enforcement matrix.
Microsoft Fabric puts every engine — SQL, Spark, Power BI, Lakehouse, Eventhouse — on top of one shared data layer, OneLake. That’s powerful, but it raises an obvious question: if everything reads from the same place, how do you make sure the right people see the right data? This is a practical, plain-English walkthrough of how Fabric security actually works, from workspace roles down to OneLake Security itself.
Control Plane vs Data Plane
Fabric security operates on two separate planes, and mixing them up is the single most common source of confusion.
The key takeaway: OneLake Security is the only security that matters for data access. Workspace roles control who can manage a workspace — but Admins, Members, and Contributors bypass OneLake Security entirely. Only the Viewer role is actually governed by row/column/object-level rules.
↑ back to topWorkspace Roles & Bypass Rules
| Role | Manages Workspace | Bypasses OneLake Security |
|---|---|---|
| Admin | Yes | Yes |
| Member | Yes | Yes |
| Contributor | Yes (limited) | Yes |
| Viewer | No | No — governed by OneLake Security rules |
Identity Modes: User’s Identity vs Delegated Identity
This is the most consequential configuration decision in a Fabric security setup, and it’s not easily reversible once downstream permissions are built around it.
| User’s Identity | Delegated (Fixed) Identity | |
|---|---|---|
| Who the engine sees | The actual signed-in user (Entra ID token passthrough) | A single fixed service identity for every query |
| Cross-engine consistency | Consistent — same identity everywhere | Inconsistent — one identity masks individual users |
| Recommended for | New implementations | Legacy patterns migrating gradually |
| Risk | Low | Switching later has destructive side effects on existing SQL permissions |
Engine Enforcement Matrix
OneLake Security is enforced consistently, but rollout status varies slightly by engine:
| Engine | OneLake Security Enforcement |
|---|---|
| Lakehouse (SQL analytics endpoint) | GA |
| Spark | GA |
| Power BI / Semantic Models | GA |
| Lakehouse UI (Explorer) | GA |
| Eventhouse (KQL) | Preview |
| External engines | Preview |
Best Practices
- Default to User’s Identity for new Fabric workspaces — don’t set Delegated Identity out of habit from legacy patterns.
- Remember Viewer is the only role actually governed by OneLake Security — design your workspace role assignments accordingly, not just your data rules.
- Document identity-mode decisions before granting broad SQL permissions; changing modes later can break existing access.
- Treat Eventhouse and external-engine access as preview-stage — validate enforcement behavior before relying on it for sensitive data.
Sources: Microsoft Fabric security fundamentals, OneLake Security (preview) — Microsoft Learn.
Leave a comments