Power BI Lesson 46 – Power BI Service Overview | Dataplexa
Visualisation & Service · Lesson 46

The Power BI Service

Power BI Desktop is where you build. The Power BI Service — app.powerbi.com — is where you publish, share, schedule, and manage. Everything that happens after "I've finished my report" happens in the Service: publishing to a workspace, sharing with colleagues, configuring scheduled refresh, setting up row-level security, and packaging reports into an App for the organisation. This lesson covers the full lifecycle from Desktop to deployed.

The Power BI Service Architecture

Power BI ecosystem — where each component lives
Power BI Desktop
✓ Build and design reports
✓ Build data models (Power Query + DAX)
✓ Local .pbix file
✓ Free to download and use
→ Publish to Service when ready
Power BI Service
✓ Host and share reports
✓ Schedule data refresh
✓ Workspaces and Apps
✓ Row-level security
✓ Collaboration and comments
Power BI Mobile
✓ View and interact with reports
✓ Receive data alerts
✓ Offline cached reports
✓ iOS and Android
→ Reads from the Service

Publishing a Report

Publishing uploads your .pbix file to the Power BI Service. It creates three items in the target workspace: a Report (the visuals and pages), a Dataset (the data model and all its tables, relationships, and DAX), and optionally a Dashboard (a single-page pinned view). The Report and Dataset are separate objects — one Dataset can power multiple Reports.

// Publishing from Power BI Desktop
// Home tab → Publish → select workspace → Publish

// What gets published:
// 1. Report   — all pages, visuals, and formatting
// 2. Dataset  — data model: tables, relationships, measures, columns
//               NOTE: the actual data is included in Import mode
//               In DirectQuery mode, only the connection info is published

// What does NOT get published:
// - Local data sources (Excel files on your C:\ drive)
//   These must be moved to SharePoint, OneDrive, or a gateway
//   before scheduled refresh will work
// - Power Query Editor scratch queries (load disabled queries)
//   These are included but do not load data

// Re-publishing (updating an existing report):
// Publish again with the same name to the same workspace
// Power BI asks: "Replace this dataset?" → Yes
// The Report pages update
// The Dataset (data model) is replaced
// Any Dashboards built from pinned visuals update automatically
// Personal bookmarks that users saved in Service are preserved

// Publishing to "My Workspace" vs a team workspace:
// My Workspace: personal space, visible only to you
//   → not suitable for sharing with others
// Team Workspace: collaborative, controlled by workspace admins
//   → the right destination for shared reports
After publishing — three items appear in the workspace
📊
Sales Dashboard Report
Report · Last modified just now · 4 pages
Report
🗄
Sales Dashboard
Dataset · Last modified just now · 3 tables
Dataset
📌
Sales Dashboard
Dashboard · created when you pin visuals from the report
Dashboard
Report and Dataset created automatically on publish · Dashboard created separately when you pin individual visuals · one Dataset can power multiple Reports

Workspaces

Workspaces are containers in the Service that hold reports, datasets, dashboards, and dataflows. Access is controlled at the workspace level. The right workspace structure is the foundation of good governance.

Workspace role Permissions Assign to
Admin Full control — manage membership, delete workspace, publish and update all content, configure settings Workspace owner, IT admin, report owner
Member Publish and update reports and datasets, add other members (not admins), create Apps Report developers on the team
Contributor Publish and update reports and datasets. Cannot manage membership or create Apps. Junior developers, data analysts who build reports but do not manage the workspace
Viewer View and interact with reports and dashboards. Cannot edit or publish anything. End users, executives, report consumers — anyone who just reads the reports

Sharing Methods — The Three Tiers

Three distinct sharing methods exist, each appropriate for different audiences and governance requirements. Using the wrong method either over-shares (giving people edit access they should not have) or creates friction (requiring recipients to have a Pro licence when they do not).

Direct Share
Share a specific report with named individuals
From the report in Service: Share button → enter email addresses. Recipients receive a notification and a link. Choose whether to allow re-sharing and whether recipients can build content using the dataset.
✓ Quick and simple
⚠ Each recipient needs Power BI Pro or Premium Per User licence
Publish to App
Package workspace content for a broad audience
Bundle all reports in a workspace into a single App with a custom navigation and branding. Publish to specific users, security groups, or the entire organisation. Recipients access the App from their Apps section — they do not need workspace access.
✓ Clean, branded experience for consumers
✓ Workspace stays separate from consumer view
⚠ Requires Premium capacity or Pro licence for each consumer
Embed
Embed reports in other applications
Embed a report in SharePoint, Teams, or a custom web application using an iFrame or the Power BI JavaScript SDK. Users view the report within the host application without navigating to the Service.
✓ Seamless experience in Teams/SharePoint
✓ "Embed for your organisation" = users authenticate with their own accounts
⚠ "Embed for your customers" = requires Premium capacity or Embedded A SKU

Scheduled Refresh

A published dataset does not update automatically. Scheduled refresh tells the Service to re-run all Power Query queries on a defined schedule — daily, hourly, or up to eight times per day on Pro, or 48 times per day on Premium. The data in the Service is updated with the latest values from the source.

// Setting up scheduled refresh — in Power BI Service

// Step 1 — Configure data source credentials
// Service → Dataset → Settings → Data source credentials
// Click "Edit credentials" next to each source
// Enter username/password or OAuth as appropriate
// For local files: must use the On-premises data gateway

// Step 2 — Set the refresh schedule
// Service → Dataset → Settings → Scheduled refresh
// Toggle "Keep your data up to date" → ON
// Set frequency: Daily, Weekly, or specific days
// Add up to 8 time slots (Pro) or 48 time slots (Premium)
// Set the time zone

// Step 3 — Configure failure notifications
// "Send refresh failure notifications to" → dataset owner email
// Always enable this — silent refresh failures mean stale data
// that no one notices until an executive asks why numbers are wrong

// On-premises data gateway:
// Required when the source is a local file, SQL Server,
// or any resource not accessible from the internet
// Install on a machine that is always on
// Register with the Service under Settings → Manage gateways
// The gateway acts as a secure relay between the Service
// and your private data sources
Scheduled refresh — settings panel in Power BI Service
Keep your data up to date
Refresh frequency
Daily
Time zone
(UTC+05:30) Chennai, Kolkata, Mumbai
Refresh times
06:00 AM
12:00 PM
06:00 PM
+ Add time
Failure email
admin@company.com
Last refresh: Today, 06:00 AM · Succeeded Next refresh: Today, 12:00 PM

Row-Level Security (RLS)

Row-Level Security restricts which rows of data each user can see — without creating separate reports for each user. A salesperson sees only their own region's orders. A manager sees their team's data. An executive sees everything. RLS is defined in the Desktop with DAX rules, then assigned to users in the Service.

// Step 1 — Define RLS roles in Power BI Desktop
// Modelling tab → Manage roles → New role

// Role: "North Region"
// Table: Orders
// DAX filter:  [Region] = "North"
// This role restricts Orders to North rows only

// Role: "Own Region"
// Table: Employees  (has columns: Email, Region)
// DAX filter:
[Email] = USERPRINCIPALNAME()
// USERPRINCIPALNAME() returns the email of the logged-in user
// This dynamically restricts each user to their own row in Employees
// Combined with a relationship, this flows to all related tables

// Dynamic RLS pattern — relationship-based
// Employees table: Email | Region | EmployeeID
// Orders table: EmployeeID | Revenue | ...
// Relationship: Employees[EmployeeID] → Orders[EmployeeID]
// RLS on Employees:  [Email] = USERPRINCIPALNAME()
// Result: each user sees only orders from their own EmployeeID
// No per-region roles needed — one rule handles all users

// Step 2 — Test RLS in Desktop
// Modelling tab → View as → select a role
// The report now shows only data visible to that role
// Check every page and visual to confirm correct filtering

// Step 3 — Assign users to roles in the Service
// Service → Dataset → Security
// Find the role → add user email addresses or security groups
// Users in "North Region" role see only North data
// Users in no role see all data (admins/owners bypass RLS)
Dynamic RLS — what each user sees
User USERPRINCIPALNAME() Their Region Revenue they see
Alice Brownalice@company.comNorth$65,000
Bob Singhbob@company.comSouth$39,400
Carol Lee (manager)carol@company.comAll (no RLS)$130,400
One report, one dataset, three users, three different filtered views — no separate reports required

Licences — Which Do You Need?

Licence What you can do Limitations
Free Build in Desktop, publish to My Workspace, view reports shared from Premium capacity workspaces Cannot share with others or publish to team workspaces. No scheduled refresh via shared capacity.
Pro ($10/user/mo) Publish to team workspaces, share reports, schedule refresh (8×/day), build and consume Apps Both the sharer AND the recipient need Pro licences. 1GB dataset size limit.
Premium Per User ($20/user/mo) All Pro features plus: larger datasets (up to 100GB), 48 refreshes/day, deployment pipelines, paginated reports Still per-user — everyone interacting needs a PPU licence
Premium Capacity (P SKU) Dedicated capacity — Free users can view reports published to Premium workspaces. Very large datasets, advanced AI features, unlimited API access Expensive ($4,995+/month) — for organisations with large user bases or enterprise-scale requirements

Teacher's Note: The most common Service mistake is publishing to My Workspace and then trying to share reports from there. My Workspace is personal — it does not support team collaboration, App publishing, or stable URLs. The moment you intend for someone else to view a report, publish it to a team workspace. Create the workspace first, configure the correct membership roles, then publish. This order — workspace first, publish second — prevents the scramble of moving content after the fact, which sometimes breaks scheduled refresh connections and dashboard pins.

Practice

Practice 1 of 3

When a dataset uses data from a file on a local machine or a private SQL Server not accessible from the internet, scheduled refresh in the Service requires installing an On-premises data ___ on a machine that is always running.

Practice 2 of 3

The DAX function ___ returns the email address of the currently logged-in user, making it the foundation of dynamic Row-Level Security where each user automatically sees only their own data.

Practice 3 of 3

To give a broad audience access to a polished, branded collection of reports without granting them access to the underlying workspace, you package the content into an ___ and publish it to specific users or the entire organisation.

Lesson Quiz

Quiz 1 of 3

You publish a report to the Power BI Service and share the link with a colleague. They click the link and receive an error: "You need a Power BI Pro or Premium Per User licence to view this content." You have a Pro licence. What is the cause?

Quiz 2 of 3

A dataset's scheduled refresh fails every night at 2am with the error "Credentials are required for the data source." The refresh worked for the first two weeks. What is the most likely cause?

Quiz 3 of 3

You implement dynamic RLS using [Email] = USERPRINCIPALNAME() on the Employees table. A workspace Admin opens the report and sees all data, not just their own employee data. Is this correct?

Next up — Lesson 47 covers Workspaces and Collaboration in depth, including deployment pipelines for dev/test/prod promotion, workspace governance, and how teams work together on shared reports without overwriting each other's changes.