Starter pools provide fast notebook start times but consume CUs even when idle
Environments can be shared across multiple notebooks within a workspace
The native execution engine does not support all Spark operations — unsupported ops fall back to standard Spark
Domain Workspace Settings
Domains in Fabric are a way to group workspaces by business area (e.g., Finance, Marketing, Engineering).
Feature
Description
Domain assignment
Assign a workspace to a specific domain
Domain roles
Domain admins, domain contributors
Data governance
Policies and endorsement can be applied at domain level
Discovery
Users can discover workspaces within their domain in the data hub
OneLake Workspace Settings
Setting
Description
OneLake data access
Control whether OneLake data can be accessed via ADLS Gen2 APIs
Users can only access data via Fabric items
Restrict direct OneLake access — force access through Fabric items
Exam Caveat ⚠️: When “Users can only access data via Fabric items” is enabled, external tools that connect via ADLS Gen2 APIs (like Azure Storage Explorer) will be blocked.
Dataflow Gen2 Workspace Settings
Setting
Description
Data destination defaults
Default Lakehouse or Warehouse for Dataflow Gen2 outputs
Staging Lakehouse
Workspace-level staging Lakehouse for Dataflow Gen2 processing
🔄 1.2 Implement Lifecycle Management in Fabric
Version Control (Git Integration)
Fabric supports Git integration for version-controlling workspace items.
flowchart LR
WS["📁 Fabric Workspace"] <-->|"Sync"| REPO["🔧 Git Repository\n(Azure DevOps or GitHub)"]
REPO --> BRANCH["🌿 Branches\n(Feature branches,\nPR workflow)"]
BRANCH --> MERGE["🔀 Merge / PR\n(Code review)"]
MERGE --> MAIN["✅ Main Branch\n(Production-ready)"]
Supported Git providers:
Provider
Support
Azure DevOps
Fully supported
GitHub
Fully supported
Other Git
Not supported natively
Items that support Git integration:
Item
Git Support
Notebooks
✅
Spark Job Definitions
✅
Pipelines
✅
Semantic Models
✅
Reports
✅
Lakehouses (metadata)
✅
Warehouses (metadata)
✅
Dataflow Gen2
✅
Environments
✅
Exam Caveat ⚠️:
Git integration syncs item definitions (metadata), not the data itself
Each workspace connects to one branch at a time — you switch branches at workspace level
Conflicts must be resolved before syncing
Database Projects
Database projects provide a code-first, schema-as-code approach for managing Warehouse schemas.
Feature
Description
SQL project
Version-controlled set of SQL scripts defining schema
Schema compare
Compare project schema vs deployed warehouse
Publish
Deploy schema changes from project to warehouse
IDE support
VS Code with SQL Database Projects extension
Deployment Pipelines
Deployment pipelines enable CI/CD for Fabric — promoting items across environments.
flowchart LR
DEV["🟢 Development\n(Workspace)"] -->|Deploy| TEST["🟡 Test\n(Workspace)"]
TEST -->|Deploy| PROD["🔴 Production\n(Workspace)"]
Feature
Description
Stages
Up to 10 stages (typically: Dev → Test → Prod)
Deployment rules
Override data sources, parameters per stage
Selective deployment
Deploy individual items or all items
Auto-binding
Deployed items maintain relationships
Comparison view
See differences between stages before deploying
Exam Caveat ⚠️:
Deployment pipelines deploy item definitions, not data
You need at least Contributor on both source and target workspaces
Deployment pipelines and Git integration can be used together — Git for code versioning, pipelines for environment promotion
🔒 1.3 Configure Security & Governance
Security Layers in Fabric
graph TD
TENANT["🏢 Tenant-Level\n(Admin portal settings)"] --> WS["📁 Workspace-Level\n(Roles: Admin, Member,\nContributor, Viewer)"]
WS --> ITEM["📄 Item-Level\n(Share / Permissions per item)"]
ITEM --> DATA["📊 Data-Level Security"]
DATA --> RLS["🔐 Row-Level Security (RLS)"]
DATA --> CLS["🔐 Column-Level Security (CLS)"]
DATA --> OLS["🔐 Object-Level Security (OLS)"]
DATA --> FLS["📁 Folder/File-Level Security"]
DATA --> DDM["🎭 Dynamic Data Masking"]
Workspace-Level Access Controls
Role
Permissions
Admin
Full control — manage settings, members, delete workspace
Create, edit, delete items; cannot share or manage members
Viewer
View items only; cannot edit, create, or delete
Exam Caveat ⚠️: Workspace Viewer role does not automatically grant access to the underlying data — additional item-level or data-level permissions may be needed.
Item-Level Access Controls
You can share individual Fabric items (Lakehouse, Warehouse, Report, etc.) with specific users, granting:
Permission
What It Grants
Read
View item metadata and content
ReadAll
Read all data in the item (bypasses data-level security for some items)
ReadData
Read data via SQL (Warehouse, SQL Analytics Endpoint)
Write
Edit the item
Reshare
Share the item with others
Row-Level Security (RLS)
RLS restricts which rows a user can see based on filters.
Where RLS is supported:
Item
RLS Method
Warehouse
T-SQL CREATE SECURITY POLICY + FUNCTION
SQL Analytics Endpoint
Same as Warehouse
Semantic Model
DAX filter expressions in Power BI
Lakehouse (via SQL)
Via SQL Analytics Endpoint
1
2
3
4
5
6
7
8
9
10
11
-- Example: RLS in a Fabric WarehouseCREATEFUNCTIONdbo.fn_SecurityPredicate(@RegionASNVARCHAR(50))RETURNSTABLEWITHSCHEMABINDINGASRETURNSELECT1ASresultWHERE@Region=USER_NAME()ORUSER_NAME()='admin@contoso.com';CREATESECURITYPOLICYRegionFilterADDFILTERPREDICATEdbo.fn_SecurityPredicate(Region)ONdbo.Sales;
Column-Level Security (CLS)
CLS restricts which columns a user can see.
1
2
3
-- Example: Grant SELECT on specific columns onlyGRANTSELECTONdbo.Employees(Name,Department,Title)TO[analyst@contoso.com];-- The Salary column is NOT included — the user cannot see it
Exam Caveat ⚠️: CLS is supported in Warehouse and SQL Analytics Endpoint via T-SQL GRANT/DENY on specific columns.
Object-Level Security (OLS)
OLS hides entire tables or columns from users in Semantic Models (Power BI).
Aspect
Detail
Where
Semantic Models only
How
Define OLS roles in the model with none permission on sensitive tables/columns
Effect
Objects are completely invisible to restricted users
Folder/File-Level Security (OneLake)
Feature
Description
OneLake data access roles
Define roles that grant access to specific folders within a Lakehouse
Granularity
Folder-level within the Lakehouse Files section
Inheritance
Permissions inherit to subfolders unless overridden
Dynamic Data Masking (DDM)
DDM masks data at query time without changing stored data.
Mask Function
Effect
Example
Default
Full mask based on data type
XXXX for strings, 0 for numbers
Email
Shows first char + XXX@XXX.com
mXXX@XXXX.com
Partial
Shows prefix + padding + suffix
Cus-XXXX-er
Random
Random number in specified range
42 (random)
1
2
3
4
5
6
-- Example: Apply dynamic data masking in WarehouseALTERTABLEdbo.CustomersALTERCOLUMNEmailADDMASKEDWITH(FUNCTION='email()');ALTERTABLEdbo.CustomersALTERCOLUMNCreditCardADDMASKEDWITH(FUNCTION='partial(0,"XXXX-XXXX-XXXX-",4)');
Exam Caveat ⚠️: Users with UNMASK permission can see the original data. DDM is not a security boundary for users with elevated database permissions.
Sensitivity Labels
Feature
Description
Source
Microsoft Purview Information Protection
Apply to
Any Fabric item (Lakehouse, Warehouse, Report, etc.)
Labels
E.g., Public, General, Confidential, Highly Confidential