Power BI Service: Publishing, Workspaces, Row-Level Security, and Refresh
Move from Desktop to the cloud — workspaces, apps, scheduled refresh with gateways, and row-level security that actually locks data down.
What You Will Learn
- Publish reports from Desktop to the Power BI Service
- Understand workspaces and how to organize content
- Build dashboards by pinning visuals
- Share content: apps, links, and embedding
- Implement Row-Level Security (RLS) to control data access
- Schedule automatic data refresh
- Use Power BI Goals / Scorecards
6.1 Publishing to the Service
When your report is ready in Power BI Desktop:
- Click Home → Publish
- Sign in with your Microsoft account (if not already signed in)
- Select the workspace to publish to
- Click Select
Power BI uploads your .pbix file (which contains both the dataset and the report) to the cloud. You will see a success message with a link to open the report.
What gets published: The dataset (data model + data) AND the report (pages + visuals). These are stored as two separate items in the Service.
6.2 Navigating the Power BI Service
Open app.powerbi.com in any browser.
Left Navigation
| Item | Description |
|---|---|
| Home | Recently viewed and recommended content |
| Create | New report, scorecard, or paste data |
| Browse | All content you have access to |
| Workspaces | Your collaborative content folders |
| Apps | Published app bundles |
| Metrics | Scorecards and goals |
| Learn | Microsoft's learning resources |
Content Types in the Service
| Type | Icon | Created by |
|---|---|---|
| Dataset | 🗄️ | Uploading a .pbix file |
| Report | 📊 | Desktop or in-browser |
| Dashboard | 🖥️ | Pinning visuals from reports |
| Dataflow | 🔀 | Power Query in the Service |
| App | 📦 | Publishing a workspace as an app |
6.3 Workspaces
Workspaces are collaborative folders in the Service. Every user has a My Workspace (personal), plus you can create or join shared workspaces.
Creating a Workspace
- Workspaces → Create a workspace
- Enter a name and optionally a description
- Add members and assign roles
Workspace Roles
| Role | What they can do |
|---|---|
| Admin | Full control — manage settings, members, and all content |
| Member | Create, edit, publish content; manage access |
| Contributor | Create and edit content; cannot manage access |
| Viewer | View content only; cannot edit |
Best practice: Use workspaces per team or per project. Keep "My Workspace" for personal drafts only — never share directly from it.
6.4 Dashboards
A Dashboard is a single-page summary that pins visuals from multiple reports. Unlike reports, dashboards cannot be created in Desktop — they live exclusively in the Service.
Creating a Dashboard
- Open any published report in the Service
- Hover over any visual → click the pin icon (📌)
- Choose "New dashboard" or pin to an existing one
- Give the dashboard a name and click Pin
Dashboard vs. Report
| Feature | Report | Dashboard |
|---|---|---|
| Multiple pages | ✔️ | ❌ (single page) |
| Slicers and filters | ✔️ | ❌ |
| Full DAX/interactive | ✔️ | Limited |
| Cross-report pinning | ❌ | ✔️ |
| Mobile layout | Optional | ✔️ Built-in |
| Q&A feature | ❌ | ✔️ |
| Alerts | ❌ | ✔️ |
Q&A on Dashboards
Click the Ask a question about your data box at the top of a dashboard to query your data in natural language:
- "What were total sales last quarter by region?"
- "Show me top 5 products by revenue as a bar chart"
6.5 Sharing Content
Share a Report or Dashboard (Direct Link)
- Open the report/dashboard
- Click Share (top right)
- Enter email addresses or groups
- Choose whether recipients can re-share or see the underlying data
- Click Send
Requires: Both you and the recipient need a Pro or PPU license, OR the content is in a Premium capacity workspace.
Publish to Web (Public, Anonymous)
File → Embed report → Publish to web (public)
This creates a public URL anyone can view — no login required.
⚠️ Warning: Use ONLY for publicly available data. Anyone with the link can see the report — do not use for internal or sensitive data.
Sharing via Apps
Apps are the best way to distribute content to large groups:
- In your workspace click Create app
- Add a name, description, and brand color
- Select which reports/dashboards to include
- Set up the navigation sidebar
- Publish app
- Share the app link with your audience
Recipients install the app once; you update it in the background without re-sharing.
6.6 Row-Level Security (RLS)
RLS restricts what data each user sees based on their identity. Example: a sales rep sees only their region's data.
Setting Up RLS in Power BI Desktop
Step 1 — Define roles
- Modeling ribbon → Manage Roles → Create
- Name the role (e.g., "West Region")
- Select a table and add a DAX filter expression:
-- Static RLS: hardcoded to a region
[Region] = "West"
Step 2 — Dynamic RLS (recommended for scalability) Use the logged-in user's email to filter data:
-- In dim_Salesperson table
[Email] = USERPRINCIPALNAME()
This requires a dim_Salesperson table with an Email column that matches your Azure AD user emails, connected to your fact table.
Step 3 — Test roles in Desktop Modeling → View as → select a role to preview what that user would see
Step 4 — Assign users to roles in the Service
- Go to your dataset in the workspace
- Click "..." → Security
- Find the role → Add people → enter email addresses
Important: RLS only restricts the data visible in reports. Users with "Build" permission on the dataset can still query data directly. Use Object-Level Security (OLS) to hide entire columns or tables.
6.7 Data Refresh
Data in an imported dataset goes stale unless you refresh it.
Manual Refresh
In the workspace → click "..." next to the dataset → Refresh now
Scheduled Refresh
- In the workspace, click your dataset → Settings
- Expand Data source credentials → enter credentials for each source
- Expand Scheduled refresh → toggle it On
- Set the Refresh frequency: Daily or Weekly
- Set Time zone and specific times (up to 8 times per day on Pro, 48 on Premium)
- Optionally add Refresh failure notifications email
Gateway — For On-Premises Data
If your data source is behind a firewall (SQL Server, Oracle, files on a network drive), you need an on-premises data gateway:
- Download the gateway installer from the Power BI Service
- Install on a Windows machine that can reach the data source
- Register the gateway in the Service under Settings → Manage connections and gateways
- Connect your dataset's data source to the gateway
Incremental Refresh (Pro / Premium)
For large datasets, avoid refreshing all historical data on every cycle:
- In Power Query, create
RangeStartandRangeEndparameters of typeDate/Time - Filter your date column using these parameters
- In the Service → dataset → Scheduled refresh → Incremental refresh
- Define how much to keep (e.g., 3 years) and how much to refresh (e.g., last 10 days)
6.8 Email Subscriptions and Alerts
Email Subscriptions
Automatically email a screenshot of a report page on a schedule:
- Open a report in the Service
- Subscribe to report (bell icon or File menu)
- Set frequency, time, and recipients
Data Alerts (Dashboard only)
Get notified when a KPI crosses a threshold:
- Click a card or KPI tile on a dashboard
- Click "..." → Manage alerts
- Set the condition (e.g., "Revenue below 50,000")
- Choose notification method (email, notification center)
6.9 Power BI Goals / Scorecards
Goals let you track KPIs against targets with accountability owners.
- Metrics (left nav) → New scorecard
- Add a metric → connect to a measure in your dataset
- Set the target value and status rules (e.g., > 90% of target = green)
- Assign an owner responsible for each metric
- Add check-ins — manual updates with notes
Module 6 Summary
You can now:
- Publish reports from Desktop to the Service
- Organize content in workspaces with proper roles
- Build dashboards by pinning visuals
- Share via direct links and apps
- Restrict data visibility with Row-Level Security
- Schedule automatic data refresh with or without a gateway
Knowledge Check
- What is the difference between a Dashboard and a Report in the Power BI Service?
- You want to share a report with 500 colleagues. Should you use "Share" or an "App"? Why?
- How does dynamic RLS differ from static RLS? What is the DAX function used?
- What is an on-premises gateway and when do you need one?
Next Module
➡️ Module 7 – Advanced & Expert Topics
Performance tuning, composite models, deployment pipelines, Power BI Embedded, and the REST API.