Loading...

Securing and governing your medallion layers in Fabric Data Warehouse

Securing and governing your medallion layers in Fabric Data Warehouse

Coauthor - Artur Vieira

Part 4 of a series on medallion architecture with Fabric Data Warehouse 

Security should follow the layers, not fight them 

In Part 1 we chose the pattern, in Part 2 we built the layers, and in Part 3 we covered the operating practices that keep them healthy. Security is the natural next step, because a medallion architecture already gives you something most platforms do not: three clearly different audiences. 

A medallion architecture creates clear boundaries between raw, refined, and curated data. Applying security and governance at those boundaries helps reduce unnecessary exposure, simplify access decisions, and give each audience the data it needs without opening every layer.. 

The following approach shows how to secure and govern a medallion pipeline in Fabric Data Warehouse. 

Why this matters 

Most access problems in analytics platforms are not dramatic breaches. They are cases of unnecessary access, such as an analyst who can read raw customer records because the entire warehouse was shared or a service account with more permissions than its task requires. 

A medallion architecture simplifies this work because each layer already signals a different level of sensitivity. Raw data is typically the most exposed and least useful to a business user, while curated data is shaped for broader consumption. The security model should follow that progression. 

The goal is simple: as data moves toward Gold, the audience can expand because the data has been cleaned, shaped, and protected for broader use. 

Rule 1: Separate the layers before you secure them 

Access control is much easier when the layers are separate objects. This is the same layout rule from Part 1, now with a security payoff. 

In Fabric,  If Bronze, Silver, and Gold live in separate workspaces, you can keep the Bronze workspace restricted to a small engineering group while giving a wider audience access to the Gold workspace. Separate workspaces also provide clearer access boundaries and can help isolate workloads across the medallion layers. 

Workspace roles and item permissions are not the same thing, and the difference matters for medallion. Admin, Member, and Contributor all receive CONTROL on every warehouse and SQL analytics endpoint in the workspace: full read/write access plus the ability to manage SQL permissions. Viewer receives CONNECT and ReadData, so viewers can read every table and view with T-SQL. When you share a single warehouse instead, you choose the level: Read lets the recipient connect only, “Read all data using SQL” grants ReadData (the equivalent of db_datareader), and “Read all data using Apache Spark” grants ReadAll over the warehouse’s files in OneLake. 

ReadData and ReadAll are separate permissions that do not overlap. Treat ReadAll as an engineering permission: row-level and column-level security apply only to queries on the warehouse or SQL analytics endpoint, so Spark access to the underlying files should go only to people who are allowed to see everything in that layer. 

Access path 

What it grants 

Typical use in a medallion design 

Workspace Admin, Member, Contributor 

CONTROL on every warehouse and SQL analytics endpoint; sees unmasked data 

Engineers who build and operate the layer 

Workspace Viewer 

CONNECT and ReadData on every warehouse in the workspace 

Read-only consumers of a whole workspace, usually Gold 

Item share: Read 

Connect only; no table access until granted with T-SQL 

Granular, object-by-object access 

Item share: Read all data using SQL (ReadData) 

Read-only access to all tables and views, like db_datareader 

Gold consumers and report users 

Item share: Read all data using Apache Spark (ReadAll) 

Access to the warehouse’s files in OneLake through Spark 

Engineers who need Spark; grant sparingly 

Do this well: 

  • Put each layer in its own workspace when governance matters, or at least in its own Fabric item. 
  • Assign workspace roles deliberately. Admin, Member, Contributor, and Viewer are not interchangeable. 
  • Give analysts Viewer access to Gold and no path into the Bronze workspace at all. 
  • Share Gold with “Read all data using SQL” for consumers, or share with Read only and add T-SQL GRANTs when they should see just some objects. 

Rule of thumb: if one workspace role grants access to raw and curated data at the same time, the layout is doing security a disservice. 

Rule 2: Grant the least privilege each layer needs 

Within a warehouse, Fabric Data Warehouse supports granular SQL permissions. You can grant or deny access to schemas, tables, views, and procedures, which is especially useful when multiple medallion layers share one warehouse. 

If Bronze and Silver sit in the same warehouse separated by schemas, revoke general read access on the Bronze schema and let only engineers or a service identity use it. Most consumers should never need more than read access to Gold. 

Do this well: 

  • Default to read-only for anyone who consumes data rather than builds it. 
  • Give pipelines and service identities only the permissions their job requires, on the layers they actually touch. 
  • Review permissions when a layer changes owners, not only when someone complains about access. 

Rule of thumb: many people need Gold, a few need Silver, and very few should need Bronze. 

Rule 3: Use row-level security when one table serves many audiences 

Row-level security in Fabric Data Warehouse controls which rows a user can view based on group membership or execution context. This lets one Gold table safely support audiences such as different regions, departments, or customers without creating a separate table for each group. 

This belongs mostly in Gold. That is where a single fact table often serves several regions, departments, or customers at once. Bronze and Silver are usually restricted to a small team already, so filtering rows there solves a problem you should not have. 

One scope note: row-level and column-level security apply to queries on the warehouse or SQL analytics endpoint. Power BI semantic models in Direct Lake mode fall back to DirectQuery to honor them, so include that in your Gold performance testing. 

Do this well: 

  • Apply row-level security to every table that requires audience-specific filtering. If a table has no row-level security policy, users with access to that table can view all rows permitted by their other assigned permissions. 
  • Account for pipeline identities in the predicate, so data movement is not blocked by the filter. 
  •  Test as a restricted user, not only as an administrator, so modeling mistakes surface before publication. 

Rule of thumb: use row-level security to share one trusted table safely, not to compensate for a missing Gold model. 

Rule 4: Protect sensitive columns instead of hoping nobody queries them 

Some fields should not travel all the way to Gold. The cleanest control is simply not exposing a sensitive column in the curated layer at all. 

When a sensitive field must remain in the warehouse, use column-level security to block access for roles that should not see it. Use dynamic data masking when the column must remain available but its value should be obscured for users without permission to view the original data. 

Implement column-level security with a GRANT SELECT that lists only the permitted columns; any query that touches another column fails. Masking behaves differently. Administrators, members, and contributors hold CONTROL on the warehouse and see unmasked data by default, and a user with query access can infer masked values through range filters. Use masking to prevent accidental exposure, and rely on column-level security and least privilege when a value must stay hidden. 

Do this well: 

  • Drop identifiers in Silver or Gold when the business question does not need them. 
  • Use column-level security when a role should not see a field at all, and masking when the field must be present but obscured. 
  • Grant the unmask narrowly and treat it as a decision worth recording. 

Rule of thumb: the safest sensitive column is the one Gold never carries. 

Rule 5: Make governance visible 

Security defines who can access data. Governance explains where the data came from, what it means, how it should be handled, and how it is being used. 

Fabric’s lineage view helps trace how data moved between items, especially when pipelines and dataflows do the work. Descriptions on tables and columns are worth the effort, because they tell the next person which fields are sensitive and how a value was derived. Audit logs matter most on Bronze and Silver, where unexpected access is the signal you actually want to catch. 

Do this well

  • Document how Gold fields are derived from Silver, so a report can be traced back to its source. 
  • Keep a catalog of sensitive fields and where they live in each layer. 
  • Review access to each workspace and item on a schedule, rather than only after an incident. 

Rule of thumb: if nobody can explain where a Gold number came from, governance is missing even when security is fine. 

Compliance in a medallion pipeline 

A clear medallion design also makes compliance work easier to reason about. Bronze typically holds personal data in its rawest form, and Silver is a natural place to pseudonymize, filter, or otherwise reduce what moves forward. 

 When a deletion request arrives, use the layer boundaries to identify every copy of the affected data and remove or update it according to your organization’s retention and deletion requirements. Then refresh downstream Silver and Gold data so the corrected state is reflected throughout the pipeline. Better still, decide early whether sensitive data needs to land in Bronze at all. The least expensive compliance problem is the one you never create. 

Access at a glance 

Use this as a starting point when you map audiences to layers. 

Layer 

Typical audience 

Primary control 

Fine-grained control 

Bronze 

Data engineers and service identities 

Restricted workspace or item permissions 

Schema-level grants and denies 

Silver 

Data engineers and modelers 

Moderately restricted access 

Object permissions, pseudonymization 

Gold 

Analysts and business consumers 

Broad read-only access 

 Row-level security, column-level security, and data masking 

Takeaway 

Secure each layer for its audience. Bronze stays highly restricted, Silver stays moderately restricted, and Gold is widely readable but carefully shaped. 

Use workspace roles and item permissions as your first line of control, then SQL permissions, row-level security, column-level security, and masking for the fine-grained cases. Pair that with lineage and audit so the pipeline can be explained, not just accessed. 

Done well, a medallion architecture does not only deliver clean data. It also makes it obvious who should see what. 

Ready to go deeper? Explore the Fabric Data Warehouse security documentation, then stay tuned for Part 5 of this series, where we’ll cover performance tuning your medallion pipeline.

References 

This post is part of our Medallion Architecture on Fabric Data Warehouse series: 

  • Securing and governing your layers 
  • Performance tuning your medallion pipeline 

Published on:

Learn more
Need help with this product?

We can help you with Securing and governing your medallion layers in Fabric Data Warehouse

If you want help implementing, troubleshooting, or improving this product, contact us and we’ll point you in the right direction.

Power BI Blog—Updates and News | Microsoft Power BI
Power BI Blog—Updates and News | Microsoft Power BI

Keep up with the latest Power BI updates, announcements, information, and new features on the Power BI blog. Search by category or date published.

Share post:

Related posts

Newsletter

Get the latest Dynamics 365 and Power Platform content in your inbox

A curated digest of community blogs, product news, videos, and podcasts — delivered without the noise.

Weekly updates Unsubscribe anytime Fresh community picks
We use your email only for the newsletter and you can unsubscribe at any time.
By subscribing, you agree to the privacy policy.