Lesson 10 of 16 · Level 3: Advanced

Publishing and Sharing in the Power BI Service with Row-Level Security

  • ⏱ 13 min read
  • ❓ 4 review questions
  • ✍️ Exercise with solution
In this lesson
  1. Licensing: what you need to know
  2. Publishing
  3. Workspaces and roles
  4. Scheduled refresh
  5. Ways to share
  6. Row-level security (RLS)
  7. Governance best practices
  8. Common publishing and sharing mistakes
  9. Summary
What you'll learn
  • Publish a report to the Power BI service and organize it in workspaces.
  • Schedule automatic data refresh and know when you need a gateway.
  • Share with dashboards, apps, Teams, subscriptions and alerts.
  • Apply row-level security so each person sees only their own data.
  • Set up dynamic security with Summit's SalesReps table and test it.

A report that lives on your laptop only helps you. The Power BI service (app.powerbi.com) is where reports get published, refresh on their own and are shared securely. In this lesson you'll go from a .pbix file to a solution the whole company uses.

8scheduled refreshes per day with a Pro license
48per day with Premium Per User or a company capacity
1 GBis the maximum size of a semantic model published with Pro

Limits from Microsoft's Power BI service description, checked in November 2026. Microsoft can change them: check the current version before sizing a project.

Licensing: what you need to know

Building reports in Power BI Desktop is free. To share in the service, both the publisher and the viewers usually need a paid license (Pro or Premium Per User), unless the content lives in a dedicated company capacity (a Premium capacity or a Fabric F64 or larger capacity), in which case viewers can use free licenses. Many organizations already include Power BI Pro in their Microsoft 365 plans. Terms and prices change, so check Microsoft's official Power BI pricing page or ask IT before you decide.

Publishing

  1. In Power BI Desktop, sign in with your work or school account.
  2. Click Home › Publish and choose the destination workspace.
  3. Two items get published: the report (pages and visuals) and the semantic model (data, relationships and measures; it used to be called a "dataset").

When you make changes, publish to the same workspace again and confirm you want to replace it.

Workspaces and roles

A workspace is a shared folder for a team or project ("Sales", "Finance"). "My workspace" is personal: don't use it for content other people need. In each workspace you assign roles:

AdminFull control
Can
Everything, including managing permissions and deleting the workspace.
Permission level
●●●●
1 or 2 people
MemberPublishes and shares
Can
Publish, edit and share content, and add people with lower roles.
Permission level
●●●●
BI team lead
ContributorCreates content
Can
Publish and edit content, but not share it or manage permissions.
Permission level
●●●●
Analysts
ViewerRead only
Can
Only view and interact with content.
Permission level
●●●●
Testers

Best practice: creators work in the workspace and end users consume content through an app (see below), not by browsing the workspace.

Scheduled refresh

In the service, open the semantic model's settings › Scheduled refresh and choose the frequency and times. The number of refreshes per day depends on the license:

Maximum scheduled refreshes per day

Pro8
Premium Per User48
Capacity48

For a sales report like Summit's, one early refresh a day (say, 6:30 a.m.) is usually enough, and Pro's 8 per day leave plenty of room. If someone asks for "real-time data", read Lesson 14 before promising anything.

Where the data livesWhat you need
In the cloud: SharePoint, OneDrive for work or school, cloud databases, online servicesData source credentials in the semantic model settings
On the company network or your computer: files in a local folder, an internal SQL ServerAn on-premises data gateway installed on a machine that's always on
The Excel file trick

If your source is an Excel file someone updates by hand, save it in the company's SharePoint or OneDrive and connect to it there (not to a copy on your hard drive). The service can then refresh it without a gateway.

1. Your report reads a file from a folder on your laptop and you want it to refresh every morning. What do you need?

  • Nothing: the Power BI service can reach your laptop.
  • To publish the report again every morning.
  • To move the file to the company's SharePoint or OneDrive, or install an on-premises data gateway.

The service runs in the cloud and can't see your hard drive. Either move the file to the cloud or install a gateway.

The full path, from Desktop to your users

  1. Power BI DesktopPublishTo a team workspace, never to "My workspace" if others need it.
  2. Service · semantic model settingsCredentials and gatewayCredentials for each source; if there are local files or servers, map the gateway.
  3. Service · semantic model settingsScheduled refreshTimes, time zone and an email notification if it fails.
  4. Service · model securityAssign rolesPeople or groups for each row-level security role.
  5. WorkspaceCreate or update the appEnd users consume content from the app, with its navigation.

Ways to share

OptionWhat it's for
AppPackages several reports from a workspace with navigation and publishes them to an audience (the whole sales team). The recommended way to reach end users.
Share a reportOne-off access for specific people.
DashboardOne screen of visuals pinned from one or more reports, ideal for monitoring indicators at a glance.
Teams and SharePointEmbed the report as a tab in a Teams channel or on a SharePoint page.
SubscriptionsEmail an image or file of the report on a schedule (for example, every Monday at 8:00 a.m.).
AlertsOn dashboards, get notified when a card, KPI or gauge crosses a threshold.
ExportTo PowerPoint (as images or as a live report), PDF or Excel (a visual's data, depending on permissions).
Never use "Publish to web" with company data

That option creates a public link anyone on the internet can open without signing in. It's only for open data. Many organizations disable it for security.

Row-level security (RLS)

With row-level security, one report shows each person only their own data: the Midwest manager sees the Midwest; the VP sees everything.

Static roles

  1. In Power BI Desktop: Modeling › Manage roles › New. Create a role named "Midwest".
  2. Select the Customers table and write the DAX filter: [Region] = "Midwest". Thanks to the relationships, the filter reaches Sales.
  3. Test it with Modeling › View as › Midwest.
  4. Publish and, in the service, open the semantic model's Security settings and add people or groups to the role.

Dynamic roles

With many managers, instead of one role per region, create an "Access" table with each person's email and region, relate it to your model and use a single role with this filter on the Access table:

[Email] = USERPRINCIPALNAME ()

USERPRINCIPALNAME returns the sign-in email of whoever is viewing the report. When a manager changes, you only update the table.

2. You want 15 store managers to each see only their store in the same report. What's easiest to maintain?

  • 15 copies of the report, each filtered.
  • One dynamic role with an access table (email and store) filtered by USERPRINCIPALNAME().
  • 15 static roles, one per store.

With dynamic security, staff changes are handled by updating a table, without touching the report.

Dynamic security with Summit's data

In the course file you don't need to build an access table: the SalesReps table already has each rep's email (for example, emily.carter@summitsupply.example). Create a "Sales Rep" role with this filter on SalesReps:

[Email] = USERPRINCIPALNAME ()

The filter flows from SalesReps to Sales through RepID (and to Targets, if you related it to SalesReps). Test it in Desktop with Modeling › View as, checking the role and typing Emily's email under Other user: every number should drop to hers. For 2025–2026 her sales are $133,438.18, exactly the Midwest region's total, because at Summit each rep covers a single region. Also create a "Leadership" role with no filter for people who should see everything.

Row-level security doesn't restrict editors

RLS applies to people with the Viewer role in the workspace or who consume content through the app. Admins, Members and Contributors see all the data. That's why end users should never get editing roles.

3. Emily Carter opens Summit's app and is in the "Sales Rep" role with the filter [Email] = USERPRINCIPALNAME(). What 2025–2026 sales total does she see?

  • $515,969.03, the company total.
  • $133,438.18, only her own sales (Midwest).
  • Nothing, because sales reps can't view reports.

The filter keeps only her email's row in SalesReps, and the relationship carries that filter to Sales. If Emily were a Member of the workspace, though, she'd see everything: row-level security only applies to viewers.

Governance best practices

  • One semantic model, many reports: several reports can connect to the same published model (Get data › Power BI semantic models). Measures are defined once and everyone uses the same "Sales" number.
  • Separate workspaces for development and production when the report is critical.
  • Check refresh history and set up failure notifications by email.
  • Document measures with descriptions (in each measure's Properties pane).
  • Sensitivity labels, if your organization uses them, for reports with sensitive data.

4. Five analysts build sales reports and each one calculates "Net Sales" differently. What's the best fix?

  • Publish a shared semantic model with the official measure and connect every report to it.
  • Ask them to agree by email.
  • Ban them from building reports.

A shared semantic model guarantees a single version of the truth for every report.

Common publishing and sharing mistakes

Publishing to "My workspace" and sharing from there.

A team workspace and an app for end users.

Connecting the report to an Excel file on your desktop.

The file in company SharePoint or OneDrive, or a gateway on an always-on machine.

Giving the whole sales team the Member role "so they don't have problems".

Viewer or app access, so row-level security applies.

Testing security by publishing and asking "do you see your data?".

Test first with View as in Desktop and in the service, using each profile's email.

"Publish to web" to send the report to a client.

Share with their account or export a PDF; the public web is only for open data.

Practice exercise: publish your report

  1. If you have a work or school account with Power BI access, publish your report to a workspace.
  2. Set up scheduled refresh (move your Excel file to OneDrive or SharePoint if needed).
  3. Create a security role by region and test it with "View as".
  4. Pin three cards to a dashboard and set up an alert.
  5. If you don't have an account, do at least step 3 in Power BI Desktop, which requires no license.
See solution

For step 3, a static "Midwest" role with [Region] = "Midwest" on Customers should show $133,438.18 in "View as". For a dynamic version, here's a sample access table:

Access table:
  Email                                  | Region
  emily.carter@summitsupply.example      | Midwest
  marcus.johnson@summitsupply.example    | South
  rachel.kim@summitsupply.example        | Northeast
  daniel.ortiz@summitsupply.example      | West

Relationship: Access[Region] (1) → Customers[Region] (*). If one person
can cover several regions, Access will have several rows per email,
and it's better to relate it through a separate Regions table.

"By email" role, filter on the Access table:
  [Email] = USERPRINCIPALNAME ()

For the VP who must see everything, create another role with no
filter (or leave them out of any filtered role).

Summary

  • Publishing uploads the report and its semantic model to a workspace in the service.
  • Sharing usually requires paid licenses or a company capacity; check current terms.
  • Scheduled refresh needs credentials for cloud sources or a gateway for on-premises sources.
  • Share through apps, Teams, subscriptions and alerts; never publish internal data to the web.
  • Row-level security, especially dynamic RLS, shows each person only what they should see.
  • RLS only applies to viewers: end users consume from the app, without editing roles.

Next lesson: Advanced DAX and Performance: Variables, Rankings, Top N and New Customers. You'll level up your DAX with variables, rankings, Top N, customer segments and performance tuning.

🎓 Save your progress and get a free certificate

Create your account in 30 seconds, mark your lessons and download your certificate at the end.

Enroll for free