Configure security and governance
Where a Fabric grant can live
A new analyst needs to read exactly one table in a lakehouse called SalesGold, one item among the dozens sitting in a Fabric workspace, and nothing else. Four different Fabric surfaces can say yes to that request, and choosing the wrong one is how a one-table ticket ends with someone who can browse every notebook, pipeline, and warehouse their team owns. Working out which surface fits a request like that, for every shape of request the exam puts in front of you, is what this page is for.
This page covers the security and governance slice of the domain. Its siblings cover the rest: configuring workspace settings covers the Spark, domain, OneLake, and Apache Airflow settings a workspace carries, lifecycle management covers version control and deployment pipelines, and orchestration covers scheduling and pipeline activities. If you arrived from one of those pages, the topic has changed: nothing below is about how content moves between environments, only about who may see it and how that is recorded.
Three checks, then four layers
Before any read succeeds, Fabric runs three checks in a fixed order: Microsoft Entra authentication (can this identity sign in to the tenant), Fabric access (can it reach Fabric at all), and data security (may it perform this action on this table or file). Microsoft's permission model[1] article states that a user must pass every level, and that the levels evaluate sequentially. The first two are mostly tenant plumbing. The third is where your design decisions live, and it is decided by four grant layers:
| Layer | What one grant covers |
|---|---|
| Workspace role | Every supported item in one workspace |
| Item permission | One item, plus its SQL analytics endpoint for a lakehouse |
| SQL engine grant | Schemas, tables, views, columns, and rows reached over T-SQL |
| OneLake security role | Tables, schema folders, and file folders in OneLake storage |
Two names in that table are worth pinning down before they are used again. OneLake is the single data lake that Fabric workspaces sit on top of, divided into a separate container per workspace, so every item's data physically lives there. The SQL analytics endpoint is the Transact-SQL surface Fabric places over a lakehouse, which is why a lakehouse can be queried with SQL at all.
Those four layer names are used consistently for the rest of the page. Fabric access control uses roles and permissions assigned to identities, with each of the four layers applied at a different reach. Read that as a working habit rather than a definition: to work out what someone may do, look for the grants attached to that principal, note which of the four layers each grant sits at, and let the reach of that layer tell you how far it carries. Every item's data physically lives in the same lake, so where the bytes sit never answers the question by itself. Note also that these four are the grant layers rather than the whole of access control: a sensitivity label associated with a Microsoft Purview protection policy can also control whether an access attempt succeeds, under the narrow conditions set out under "Sensitivity labels in Fabric" below.
The figure below traces the three ordered checks and expands the third into the four layers, which are the subject of the next four sections.
The practical takeaway is a single question to ask of every access request: what is the narrowest layer that satisfies it? Answering "workspace role" for a request that names one item is the single most common overreach in Fabric security design, and, as the sections below show, it is also the answer that makes every finer control underneath it stop mattering.
Workspace roles and their hard limits
Workspace roles are the widest of the four layers, and their defining property is that they are not selective: a role applies to all items within the workspace, so there is no version of Viewer that reveals one lakehouse and hides the others.
Fabric has four roles, listed from most to least capable: Admin, Member, Contributor, and Viewer. The roles in workspaces[2] reference publishes the full capability grid; the rows that decide most exam questions are these.
| Capability | Admin | Member | Contributor | Viewer |
|---|---|---|---|---|
| Update and delete the workspace | Yes | No | No | No |
| Add or remove people, including other admins | Yes | No | No | No |
| Add members or others with lower permissions | Yes | Yes | No | No |
| Create workspace identity | Yes | No | No | No |
| Connect workspace to a Git repository | Yes | No | No | No |
| Create or modify warehouse and database items | Yes | Yes | Yes | No |
| Write or delete lakehouse and warehouse schema and data | Yes | Yes | Yes | No |
| Read lakehouse and warehouse data with T-SQL (ReadData) | Yes | Yes | Yes | Yes |
| Read through OneLake APIs and Spark (ReadAll) | Yes | Yes | Yes | No |
| Connect to the SQL analytics endpoint | Yes | Yes | Yes | Yes |
Read the grid for the gaps rather than the grants. Contributor is the role that writes data but lacks these workspace-level administrative capabilities: it cannot add a workspace user, cannot create the workspace identity, cannot connect the workspace to Git, and cannot edit OneLake security roles. Member adds sharing and the ability to add people at Member level or lower, which is why a Member cannot promote anyone to Admin. Viewer is the only role that reads with T-SQL but not with Spark: it gets ReadData and can connect to a SQL analytics endpoint, and it does not get ReadAll, so a Viewer running a notebook against the lakehouse files fails until an item or OneLake permission supplies that access.
Roles combine to the highest, never the lowest
When a person picks up more than one role assignment, the roles resolve to the most permissive of them. Roles can be assigned to individuals or to security groups, Microsoft 365 groups, and distribution lists, and the same reference states that someone in several user groups "get the highest level of permission that's provided by the roles that they're assigned", with nested groups passing the role down to every contained user. Adding an existing Member to a Viewer group therefore changes nothing about what they can do.
That rule is worth holding next to the layer model, because it generalises. Fabric grants accumulate, so adding a grant never takes access away. Three named rules do take it away: a T-SQL DENY inside the SQL engine, which overrides a GRANT on the same object; a row-level security policy, which filters rows for every user unless it is written to exempt them; and the column-level security carried inside a OneLake security role when enforced through the SQL analytics endpoint, which hides a column across roles rather than unioning them. Nothing else on this page subtracts. The sections on the SQL engine, on masking, and on OneLake security take each in turn, where accumulation produces its most surprising results.
The takeaway for design is to treat the workspace role as a statement about a person's relationship to the whole workspace. If the honest answer is "they work in this workspace", assign a role. If it is "they need one thing from this workspace", the next section is the right layer.
Identities that are not people
Not every principal in a Fabric workspace is a person. Two non-human identities solve different problems, and they are easy to confuse because both end up as a service principal in Microsoft Entra ID.
A Microsoft Entra service principal is an identity you create and own, registered as an application in your tenant. It can be assigned a Fabric workspace role and then inherits exactly the same permissions a user in that role would have for application programming interface (API) based operations, including the Items REST API and the Job Scheduler API. Nothing about it is special: an automation account assigned Contributor can do what a human Contributor can do, which is why the least privileged role that covers the job's item and scheduler actions is the correct assignment.
A workspace identity is different in ownership. It is an automatically managed service principal that Fabric creates for, and binds to, one workspace. Per the workspace identity[3] documentation, Fabric creates the Entra service principal and app registration on your behalf and "uses workspace identities to obtain Microsoft Entra tokens without the customer having to manage any credentials". Its two supported uses are authentication for connections from items such as OneLake shortcuts, pipelines, semantic models, and Dataflows Gen2 (CI/CD), and trusted workspace access, which lets a workspace read or write firewall-enabled Azure Data Lake Storage Gen2 accounts through shortcuts.
Three constraints on the workspace identity are worth memorising. A workspace admin can create or delete it. It cannot be created in a My workspace. And by default it is granted no workspace role at all, so it is an authentication mechanism first and a permission holder only if you deliberately make it one. Deleting it is not reversible, and deleting the workspace deletes the identity with it.
Choose between them on ownership of the credential. When the requirement names a pipeline or shortcut connecting to an Azure resource without a stored secret, that is the workspace identity. When it names automation calling Fabric APIs on a schedule, that is a service principal holding a workspace role.
Item permissions and what sharing grants
Item permissions answer the request the workspace role cannot: give this person this one item, and nothing else in the workspace. Sharing an item grants access directly to the recipient and does not make them a member of any workspace role, which the permission model[1] illustrates with a worked example where removing a report's item permission still leaves a workspace Viewer able to open it, because two independent layers were granting the same access.
What the base share actually gives
Sharing grants Fabric Read by default, and Read is narrower than it sounds. For a warehouse, the sharing and permissions[4] reference describes Read as "the equivalent of CONNECT permissions in SQL Server": the recipient can connect to the SQL analytics endpoint and can query nothing until either a broader permission or a T-SQL GRANT on specific objects arrives. That is worth holding against the previous section, where a workspace Viewer could query tables straight away: the Viewer held ReadData through their workspace role, while a share recipient starts from item-level Read, which is a different and much smaller grant that happens to share the word. Sharing a lakehouse also grants access to its SQL analytics endpoint, and lakehouse sharing[5] states plainly that sharing "grants read access only. It doesn't grant workspace membership or write permissions".
The additional permissions offered in the sharing dialog are what turn Read into a usable data path, and each names its engine. These are the ones a lakehouse share offers; individual item types add their own on top, so read a sharing dialog rather than assuming this list is complete for every item.
| Permission | What it allows |
|---|---|
| Read | Open the shared item, or connect to its endpoint |
| ReadData (Read all with SQL analytics endpoint) | Read every table and view over T-SQL, equivalent to the SQL Server db_datareader role |
| ReadAll (Read all with Apache Spark) | Read the underlying files through Spark and the OneLake APIs |
| SubscribeOneLakeEvents | Subscribe to the item's OneLake events in Real-Time hub |
| Execute Apache Spark | Run Spark jobs through the lakehouse Livy endpoint |
ReadData and ReadAll are the pair that most often decides an exam answer, and the warehouse reference is explicit that they "are separate permissions that do not overlap". Granting ReadData to someone whose notebook reads Delta files with Spark leaves them failing; granting ReadAll to someone who only needs T-SQL hands over the whole file layer. The figure below follows one recipient down both paths, marks which permission each one needs, and names the rule set that filters what comes back on each: SQL rules on the T-SQL side, OneLake security roles on the Spark and OneLake API side. Each of those two rule sets gets its own section further down.
Resharing, and who may share at all
Workspace Admins and Members can share by default. Contributors and Viewers can share only if they hold explicit Share (reshare) permission on the item, and a resharer can never grant more than they themselves hold. Note also that Read, ReadData, and ReadAll are shareable while Write is not, which is the mechanical reason the sharing path cannot be used to hand out write access.
Two practical shapes fall out of this. For least-privilege access to named warehouse objects, share with no additional permissions and then use T-SQL GRANT on exactly those objects; ReadData would be far broader. For write access, stop using item permissions altogether and assign a workspace role such as Contributor, or, for the narrow lakehouse case, a OneLake security role carrying ReadWrite.
Granular security in the SQL engine
The SQL engine grant is the layer that gets specific about rows and columns, and its three mechanisms all live in the database tier, meaning the rules apply on every query from every client rather than being enforced by an application. All three apply to both a Warehouse and a lakehouse SQL analytics endpoint, and all three are invisible to Spark and the OneLake APIs.
There are three sanctioned approaches, and they answer different questions. Object-level grants decide which tables, views, functions, and procedures a caller may touch at all. Row-level security (RLS) decides which rows of a permitted table come back. Column-level security (CLS) decides which columns a caller may reference. Pick by what the requirement restricts, then implement.
Object-level grants
The narrowest starting point is a share with no additional permissions plus explicit T-SQL. Fabric supports the familiar GRANT, REVOKE, and DENY statements against schemas, tables, views, functions, and stored procedures, documented under SQL granular permissions[6]. This is the mechanism that subtracts at the object level: a DENY on an object overrides a GRANT on it, which is why a warehouse can be shaped down to a single approved view.
Row-level security
RLS restricts rows using two objects that must both exist. The row-level security[7] reference specifies an inline table-valued function (a function that returns a table expression, abbreviated inline TVF) that holds the row-by-row test, called the predicate, bound and enforced by a CREATE SECURITY POLICY[8] statement. A stored procedure cannot take the function's place.
Listing 1: the predicate function and the security policy that binds it
-- The predicate: returns one row when the caller may see the input row,
-- and an empty result when they may not. WITH SCHEMABINDING is the default
-- and lets Fabric skip extra permission checks on the predicate itself.
CREATE FUNCTION Security.tvf_securitypredicate(@SalesRep AS nvarchar(50))
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN SELECT 1 AS tvf_securitypredicate_result
WHERE @SalesRep = USER_NAME() OR USER_NAME() = 'manager@contoso.com';
GO
-- The policy: binds the predicate to a column of the target table.
-- Without this statement the function is inert; the policy is what enforces it.
CREATE SECURITY POLICY SalesFilter
ADD FILTER PREDICATE Security.tvf_securitypredicate(SalesRep)
ON sales.Orders
WITH (STATE = ON);
GO
Comments are valid Transact-SQL, so the two above can stay in a real script. In Listing 1, the SalesRep column named in the ADD FILTER PREDICATE clause is the value passed to the function's @SalesRep parameter for each row, which is how a per-row decision is made from a table-level policy.
Filter predicates are applied while reading from the base table, so they affect SELECT, UPDATE, and DELETE. The application is not told that rows were removed; if everything is filtered, the caller simply gets an empty set. INSERT is not filtered, so a user can insert a row that they will then be unable to read. Each table needs its own policy, and a table with none returns unfiltered data. The figure below traces one query through the policy and the predicate.
One consequence catches people out, and it is the row-level exception to the accumulate-upward rule. Security policies apply to every user including dbo, and the reference notes that if members of roles like Admin, Member, or Contributor need to see all rows for troubleshooting, "the security policy must be written to allow that", exactly as Listing 1 allows manager@contoso.com.
Column-level security
CLS needs no policy object at all. It is a column-scoped GRANT[9], which Microsoft recommends assigning to roles rather than individuals for manageability.
Listing 2: granting SELECT on named columns, leaving CreditCard out
GRANT SELECT ON Customers(CustomerID, FirstName, LastName, Phone, Email) TO [Charlie@contoso.com];
The behaviour worth remembering is what happens on a wildcard query. SELECT * FROM Customers run as Charlie does not quietly omit the ungranted CreditCard column; it fails outright with Msg 230 ... The SELECT permission was denied on the column 'CreditCard'. Choose CLS when a query touching a forbidden column must fail, and the masking of the next section when it must succeed with the value obscured.
Taken together: object grants choose the tables, RLS filters the rows, CLS gates the columns, and none of the three reaches beyond the T-SQL path. The section after next rebuilds equivalent controls for readers who arrive over Spark.
Dynamic data masking and its blind spot
Dynamic data masking (DDM) is the third control in the SQL engine layer, and the odd one out among them. It does not decide who may read a column; it decides what the column looks like when someone reads it. The data in the database is unchanged, so applications keep working and masking rules are applied to query results only.
Four masking functions are available on a warehouse or SQL analytics endpoint column, per the dynamic data masking[10] reference.
| Function | Effect | Example syntax |
|---|---|---|
| Default | Full mask by data type: XXXX for strings, 0 for numerics, 1900-01-01 for dates | MASKED WITH (FUNCTION = 'default()') |
Exposes the first letter and a .com suffix, as aXXX@XXXX.com | MASKED WITH (FUNCTION = 'email()') | |
| Random | Replaces a numeric value with a random value in a stated range | MASKED WITH (FUNCTION = 'random(1, 12)') |
| Custom String | Exposes a prefix and suffix with custom padding between | MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') |
Who sees through a mask is decided by permissions. Viewing masked data needs only SELECT on the table; viewing unmasked data needs UNMASK on the column or CONTROL on the database. Because workspace Admin, Member, and Contributor hold CONTROL on the database by design, they see unmasked values by default, which is the accumulate-upward pattern from the workspace-role section showing up again. Managing masks needs ALTER ANY MASK plus ALTER on the table, a pair typically granted to a security officer.
The blind spot
A mask changes the displayed value, not the query engine's ability to evaluate a predicate against the real one. Microsoft's own worked example makes the failure concrete, and it is the reason masking never counts as a boundary.
Listing 3: a range query that infers a masked salary
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
Every row Listing 3 returns displays Salary as 0, but the fact that those rows came back at all reveals that each of those employees earns between $99,999 and $100,001. Repeat with narrowing ranges and the real number falls out. The documentation's conclusion is unambiguous: do not use dynamic data masking alone to secure sensitive data from users who have query access.
Use DDM for what it is good at, which is preventing accidental exposure in result sets that people look at all day. Put the actual boundary in object-level, row-level, or column-level security, and grant UNMASK only to principals who must retrieve original values.
OneLake security roles
OneLake security is the layer that secures the data where it actually sits, which is why it is the one that also works for a notebook. Everything in the two previous sections stopped at the T-SQL path; this layer grants access to tables and folders in OneLake itself, and because Delta tables and schemas are represented as folders, one model covers structured tables and unstructured files alike.
The access control model[11] defines a role by four parts: a type, a permission, a scope, and members. The type is the first thing to internalise, because only GRANT-type roles are supported. There is no deny role. The model is deny-by-default, so a principal starts with no data access and picks up whatever roles grant. Permissions are Read and ReadWrite. Note that this Read is not the item-permission Read of the sharing section: OneLake Read is a data permission equivalent to VIEW_DEFINITION plus SELECT, where item Read only opens the item, and ReadWrite adds ALTER, DROP, UPDATE, and INSERT. Roles can be defined on lakehouses, mirrored databases, mirrored catalogs, and Azure Databricks mirrored catalogs.
Scope inherits downward. Granting a folder grants everything beneath it, and granting a subfolder also grants the ability to list and traverse its parent directories so the data stays discoverable, in the same way a Windows folder permission does. This is an analogy the documentation itself draws, not Fabric terminology.
Why a restrictive role does not restrict a Contributor
Every new item gets default roles, which are ordinary OneLake roles created automatically: a lakehouse gets DefaultReader, covering all folders under Tables/ and Files/ for everyone holding ReadAll, and DefaultReadWriter for everyone holding Write. That is the machinery behind the rule that matters most here. Workspace Admin, Member, and Contributor always hold Write to OneLake, and the reference states that those roles "override any OneLake security Read permissions".
So a restrictive OneLake role placed on a Contributor changes nothing about what they can read. Granular OneLake security is a tool for principals whose broader layers are already narrow: Viewers, and recipients holding Read on the item. If a requirement says a data engineer must write tables but must not see a sensitive folder, no OneLake role delivers it while they remain Contributor.
Rows and columns inside a role
OneLake roles can carry their own row-level and column-level filtering, expressed as SQL predicates for rows and a hidden-column list for columns. This is a separate implementation from the warehouse RLS and CLS of the earlier section, sharing the names but not the objects, and Fabric engines apply it at query time. That filtering is generally available for the Lakehouse, Spark notebooks, the SQL analytics endpoint in user's identity access mode, and Direct Lake on OneLake semantic models, and is in preview for Eventhouse (rows only) and authorized third-party engines.
How multiple roles combine is the part that generates errors. Within one role, the granted objects, the row filter, and the column list intersect: the role shows the rows that pass its predicate, from the columns it allows, of the tables it grants. Across roles, results union, and the combination a user actually gets is called their effective role. The figure below shows both operations. The documented limitation follows from mixing the two: "the same user in two or more roles with different allowed columns isn't supported if any of the roles also has an RLS statement". Put the row rule and the column rule for one table in one role.
Two more shapes worth carrying into an exam. A role with ReadWrite cannot contain RLS or CLS constraints at all. And in the SQL analytics endpoint specifically, column-level security uses a deny semantic and intersects across roles rather than unioning, so a column hidden in any role stays hidden there.
Finally, the operational limits: 250 roles per item (raisable to 1000 by request), 500 members per role, and 500 permissions per role. Role definition changes take about five minutes to apply, and a change to a user group's membership takes about an hour, with some engines needing another hour of cache expiry on top.
The summary to carry away is that OneLake security is the only layer that reaches every engine, and the only one whose rules survive a reader switching from T-SQL to Spark, but it buys that reach at the cost of being unable to restrict anyone who already holds a writing workspace role.
Sensitivity labels in Fabric
A sensitivity label is a classification stamped on a Fabric item, drawn from Microsoft Purview Information Protection rather than defined inside Fabric. The label travels with the item and, through the OneLake catalog governance experiences, gives administrators a view of which assets are labelled, which are not, and where a given label has spread.
Fabric offers several routes to getting items labelled, described in the information protection[12] article, and they exist because manual labelling alone never reaches full coverage.
| Capability | What it does | Fabric support |
|---|---|---|
| Manual labeling | A permitted user applies a label to an item | All Fabric items |
| Default labeling | An item gets a label on create or edit if none is applied | All Fabric items, with limitations |
| Programmatic labeling | Labels set, changed, or removed via Power BI admin REST APIs | All Fabric items |
| Downstream inheritance | A label propagates to dependent items | All Fabric items, with limitations |
| Mandatory labeling | Items cannot be saved unlabelled | Power BI items fully; some Fabric items with limitations |
Downstream inheritance is on by default. It flows Power BI item to Power BI item, Fabric item to Fabric item, and Fabric item to Power BI item, and it does not flow Power BI item to Fabric item. Items autogenerated from a lakehouse or warehouse take the label of that parent and do not reach further upstream for it.
Where labels do and do not control access
A label is not a permission, with one carefully bounded exception. On its own a label classifies. It gates access only when it is associated with a Microsoft Purview protection policy, and then only inside the tenant where the label was applied; the related publishing-policy path covers Power BI Desktop files and supported export paths such as Excel, PDF, and PowerPoint. The article marks every other scenario as unsupported for access control, explicitly including cross-tenant access and exports to .csv or .txt.
The exam-relevant reading is therefore narrow. When a question asks how to classify Fabric items or make classification spread with lineage, the answer is sensitivity labels. When it asks how to stop a named group accessing a Fabric item, consider whether the scenario calls for one of the four grant layers or a sensitivity label associated with a Microsoft Purview protection policy.
Endorsement badges
Endorsement answers a different question from every other feature on this page: not who may use an item, but whether they should trust it. An endorsed item wears a badge in the interface and is listed ahead of unendorsed items in some lists, and that is the whole of its effect. It changes no permission.
The endorsement overview[13] defines three badges, and they differ mainly in who is allowed to apply them.
| Badge | Claim | Who can apply it | Scope |
|---|---|---|---|
| Promoted | The creators think the item is ready for sharing and reuse | Any user with write permissions on the item | Any Fabric or Power BI item except Power BI dashboards |
| Certified | An organization-authorized reviewer confirms it meets quality standards and is authoritative | Only users specified by a Fabric administrator | Any Fabric or Power BI item except Power BI dashboards |
| Master data | The item is a core, single-source-of-truth data source | Only users specified by the Fabric administrator | Only items that contain data, such as lakehouses and semantic models |
The distinction that questions hang on is self-service versus reviewed. Promoted is a claim by the people who built the item, so it asserts nothing about organizational review; any user can request certification, but only designated reviewers actually certify. Certification and master data endorsement have to be enabled by a Fabric administrator before either appears, and certification enablement can be delegated to domain administrators, which lets a different reviewer set exist per domain.
Read a scenario for who is doing the asserting. A data engineer marking their own gold table ready for reuse is Promoted. A governance team signing off that the customer table is the authoritative source is Master data if the item holds data, and Certified for the general quality claim.
The Fabric audit log
The audit log is the record of who did what, and it is the answer whenever a question asks about a past action rather than a present permission. Fabric writes user and admin activity into the unified audit log, and you search it in the Microsoft Purview portal rather than anywhere in the Fabric interface.
Access is gated outside Fabric. Per track user activities[14], you must be assigned the Audit Logs role in Exchange Online to reach the audit log; by default the Compliance Management and Organization Management role groups carry it, and the View-Only Audit Logs role also permits searching. A Fabric administrator role by itself is not the qualifying permission.
Four filters carry most investigations, and they combine with AND, so results match all criteria at once:
- Date and time range, using Start date and End date, defaulting to the past seven days and displayed in Coordinated Universal Time (UTC)
- Activities, returning only the operations you select from the published operation list
- Users, given as email addresses, and left blank to return every user and service account in the organization
- File, folder, or site, searched by name or URL
The same records are reachable from Exchange Online PowerShell for scripted extraction. One gap is worth knowing: when capacity ID and capacity name are absent from an audit entry, you find them in the Microsoft Fabric Capacity Metrics app instead.
Do not confuse this with the Monitoring hub, which is covered in depth on the monitoring page. The Monitoring hub shows runs and their status for items the viewer already has access to, which makes it an operational tool; the audit log is the tenant-wide compliance record of user and administrative operations. A question about proving who exported a dataset last month is an audit log question, not a Monitoring hub question.
Reading the exam question
DP-700 security questions are usually a permission-selection problem dressed as a scenario. The stem describes a person, an access path, and a boundary, and the four answers are usually the four grant layers. Working the stem in a fixed order gets you to the right layer quickly.
Ask, in this order: how many items does this person need (one, or the workspace), which engine do they read with (T-SQL, or Spark and OneLake APIs), and is the restriction about tables, rows, columns, or displayed values. Those three answers pick the layer and usually the exact permission.
Stem shapes and the answer they want
- "Grant access to one lakehouse without exposing other workspace items" wants item sharing. Any workspace role is wrong because roles apply to every item.
- "The user must query one approved view and nothing else" wants a share with base Read plus a T-SQL
GRANTon that view. ReadData is the trap: it is read access to every table and view. - "A notebook must read the Delta files with Spark" wants ReadAll or a OneLake permission. ReadData is the trap, because the two permissions do not overlap.
- "Queries referencing the sensitive column must fail" wants column-level security. Dynamic data masking is the trap, because masked queries succeed.
- "Values must be hidden from casual viewing but reports keep working" wants dynamic data masking, and the follow-up is usually that masking alone is not a boundary.
- "Restrict a Contributor to selected tables" is a trick premise: no OneLake role restricts a Contributor. The answer changes their workspace role or their item access first.
- "Row filtering must also apply to Spark readers" wants a OneLake security role, not warehouse RLS, because SQL rules stop at the T-SQL path.
- "Row and column limits on the same table" wants both rules in one OneLake role.
- "Mark the item as reviewed and authoritative by the organization" wants Certified, or Master data for a data-containing item. Promoted is the trap because it is self-service.
- "Classify items and have the classification follow lineage" wants sensitivity labels. A label reaches access control only when it is associated with a Microsoft Purview protection policy in the applying tenant or with a Microsoft Purview publishing policy for Power BI Desktop files and supported export paths, so unless the stem puts one of those policies on the table, a grant-or-deny question still wants one of the four layers.
- "Find out who performed an operation" wants the audit log in the Microsoft Purview portal. The Monitoring hub is the trap.
Distractors that recur
Three families of wrong answer show up repeatedly. The first substitutes one engine's control for another's, offering warehouse RLS for a Spark requirement or a OneLake role for a T-SQL one. The second assumes a grant can subtract, offering a restrictive role placed on a principal whose workspace role already grants more. The third offers governance metadata as an access control, most often a sensitivity label where a permission belongs; the one documented exception is the protection-policy case above, which a stem has to name explicitly.
When two answers both look defensible, prefer the one that grants less. A correctly scoped answer in this domain is almost always the narrowest layer that still satisfies the stated requirement.
The four grant layers compared
| Property | Workspace role | Item permission | SQL engine grant | OneLake security role |
|---|---|---|---|---|
| Scope of one grant | Every supported item in the workspace | One item, plus its SQL analytics endpoint for a lakehouse | Schemas, tables, views, functions, procedures, columns, and rows in one warehouse or SQL analytics endpoint | Tables, schema folders, and file folders in OneLake, inherited by descendants |
| Who configures it | Workspace Admin for all roles; Member for Member, Contributor, and Viewer | A principal holding Share, who can never grant more than they hold | A principal with the T-SQL permission to GRANT on the object | A principal who may edit OneLake security roles, which excludes Contributor |
| Access paths it governs | All engines and APIs the role's permissions imply | The paths the granted permission names, such as ReadData for T-SQL or ReadAll for Spark and OneLake APIs | The T-SQL path only, so Spark and OneLake API reads are unaffected | OneLake storage reads, which is the path Spark and the OneLake APIs use |
| Can it deny access another layer granted | No, overlapping assignments resolve to the highest role | No, permissions accumulate across shares | Yes, T-SQL DENY overrides a GRANT on the same object | No, roles are additive and never restrict Admins, Members, or Contributors |
| Reach for it when | The principal works across the whole workspace | One item must be reachable without workspace membership | Least-privilege access to named warehouse objects, rows, or columns is required | Filtering must hold for Spark, OneLake APIs, and unstructured files |
Decision tree
Sharp facts the exam loves — give these one last read before exam day.
Cheat sheet
Sharp facts the exam loves — scan these before test day.
- Workspace roles grant capabilities across every item in the workspace
Admin, Member, Contributor, and Viewer are workspace-wide roles rather than permissions on one selected item. Use item sharing instead when a user must access one item without gaining comparable visibility into the rest of the workspace.
Trap Assign the Viewer workspace role to expose only one lakehouse while hiding all other workspace items.
12 questions test this
- You have a Microsoft Fabric workspace named WillowWS that contains a lakehouse, several notebooks, and two data pipelines that load payroll data. Twelve engineers hold the Contributor role in WillowWS
- You have a Microsoft Fabric workspace named AuroraWS that contains a lakehouse and several Power BI reports. A business analyst named Nina belongs to a security group that is assigned the Viewer role
- You have a Microsoft Fabric workspace named LanternWS that contains a lakehouse named Gold2. A data scientist is assigned the Viewer role in LanternWS. To support a modeling project, a workspace admin
- You have a Microsoft Fabric workspace named LanternWS that contains a lakehouse named Gold2. A data scientist is assigned the Viewer role in LanternWS. To support a modeling project, a workspace admin
- You have a Microsoft Fabric workspace named ObsidianWS that contains about 40 notebooks, data pipelines, and a lakehouse that stores unmasked customer records. A pipeline named RefreshSpend must be st
- You have a Microsoft Fabric workspace named MeadowWS that contains a lakehouse named Curated2. A vendor analyst has no role in MeadowWS. A workspace admin shares Curated2 with the analyst and selects
- You have a Microsoft Fabric workspace named WillowWS that contains a lakehouse, several notebooks, and two data pipelines that load payroll data. Twelve engineers hold the Contributor role in WillowWS
- Contoso, Ltd. has two Microsoft Fabric workspaces named ProdWS and SandboxWS. A contractor holds the Contributor role in SandboxWS, where the contractor builds and tests notebooks against sample data.
- You have a Microsoft Fabric workspace named FinanceWS that contains three warehouses named DW1, DW2, and DW3, together with several lakehouses that hold unmasked payroll data. An external compliance r
- You have a Microsoft Fabric workspace named AuroraWS that contains a lakehouse and several Power BI reports. A business analyst named Nina belongs to a security group that is assigned the Viewer role
- You have two Microsoft Fabric workspaces named CobaltWS and BasaltWS that are both assigned to the same F64 capacity. A platform engineer holds the Admin role in CobaltWS, where she routinely adds and
- You have a Microsoft Fabric workspace named ReportingWS that contains four lakehouses, two warehouses, and about 30 notebooks and data pipelines. A support team of 12 people must be able to open every
- Contributor permits content and data writes without workspace access administration
A Contributor can create, modify, execute, and delete supported Fabric items and can write lakehouse or warehouse data. The role cannot add workspace users, create the workspace identity, connect the workspace to Git, or edit OneLake security roles.
Trap Assign Member solely because a data engineer needs to write tables but must not manage workspace access.
7 questions test this
- You have a Microsoft Fabric workspace named LakeWS that is assigned to an F64 capacity. A data engineer who holds the Contributor role in LakeWS must create a OneLake shortcut to an Azure Data Lake St
- You have a Microsoft Fabric workspace named GovWS that contains a lakehouse named Curated1. Curated1 stores a Files folder named Restricted that only two named auditors may read. A data engineer who h
- Contoso, Ltd. runs a nightly Azure DevOps job that calls the Microsoft Fabric Items REST API to create a notebook in a workspace named AutoWS, then calls the Job Scheduler API to start the run and to
- Contoso, Ltd. has two Microsoft Fabric workspaces named ProdWS and SandboxWS. A contractor holds the Contributor role in SandboxWS, where the contractor builds and tests notebooks against sample data.
- You have a Microsoft Fabric workspace named IngestWS that contains a warehouse named DW1 and several data pipelines. A newly hired data engineer must create and run pipelines that load DW1, write and
- You have a Microsoft Fabric workspace named EngWS that holds notebooks, data pipelines, and a lakehouse. A senior data engineer who holds the Contributor role in EngWS is asked to place the workspace
- You have a Microsoft Fabric workspace named ResearchWS that contains a lakehouse named Trials1, and Trials1 holds a table named PatientOutcomes alongside a dozen other tables. A data engineer holds th
- Viewer can consume workspace content without inheriting Spark and OneLake file access
Viewer can view workspace content and connect to SQL endpoints, and the workspace role supplies SQL ReadData for lakehouse and warehouse data. It does not supply ReadAll for Spark, OneLake APIs, or Lakehouse explorer; grant an appropriate item or OneLake permission when that access is required.
Trap Assign Viewer and assume it automatically grants unrestricted OneLake file access through Spark.
11 questions test this
- You have a Microsoft Fabric workspace named AuroraWS that contains a lakehouse and several Power BI reports. A business analyst named Nina belongs to a security group that is assigned the Viewer role
- You have a Microsoft Fabric workspace named LanternWS that contains a lakehouse named Gold2. A data scientist is assigned the Viewer role in LanternWS. To support a modeling project, a workspace admin
- You have a Microsoft Fabric workspace named LanternWS that contains a lakehouse named Gold2. A data scientist is assigned the Viewer role in LanternWS. To support a modeling project, a workspace admin
- You have a Microsoft Fabric workspace named MeadowWS that contains a lakehouse named Curated2. A vendor analyst has no role in MeadowWS. A workspace admin shares Curated2 with the analyst and selects
- You have a Microsoft Fabric workspace named MLWS that contains a lakehouse named Features1. A machine learning engineer holds the Viewer role in MLWS and successfully queries the Features1 Delta table
- You have a Microsoft Fabric workspace named AuroraWS that contains a lakehouse and several Power BI reports. A business analyst named Nina belongs to a security group that is assigned the Viewer role
- You have a Microsoft Fabric workspace named KiteWS that contains a lakehouse named Landing2 and a data pipeline that loads it every hour. A business analyst is assigned the Viewer role in KiteWS and h
- You have a Microsoft Fabric workspace named ResearchWS that contains a lakehouse named Trials1, and Trials1 holds a table named PatientOutcomes alongside a dozen other tables. A data engineer holds th
- You have a Microsoft Fabric workspace named ReportingWS that contains four lakehouses, two warehouses, and about 30 notebooks and data pipelines. A support team of 12 people must be able to open every
- You have a Microsoft Fabric workspace named JuniperWS that contains a lakehouse named Refined1. A data scientist holds the Viewer role in JuniperWS through a security group. From Power BI Desktop she
- You have a Microsoft Fabric workspace named OpsWS that contains 25 data pipelines and 40 notebooks, and the workspace is monitored from the Monitor hub. A newly formed operations team must open OpsWS,
- Overlapping workspace group assignments resolve to the highest granted role
Workspace roles can be assigned to users, security groups, Microsoft 365 groups, or distribution lists. If a user receives several workspace roles through those assignments, the user obtains the highest permission level rather than the intersection of the roles.
Trap Place a Member in a Viewer group to reduce the user's effective workspace access to Viewer.
4 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named FreightWS that contains a lakehouse and eight data pipelines. A workspace admin assigns the Contributor role to a security group named PlatformEngi
- Litware, Inc. has a Microsoft Fabric workspace named MosaicWS that contains a warehouse and a lakehouse. A contractor is a member of a security group named BillingReviewers, which is assigned the Cont
- You have a Microsoft Fabric workspace named RidgelineWS that contains a lakehouse and several data pipelines. A data engineer named Marek receives access through two security groups: one group is assi
- You have a Microsoft Fabric workspace named GridWS that contains a lakehouse and several notebooks. A data engineer named Tomas holds the Member role in GridWS through an individual assignment. For a
- Service principals inherit the capabilities of their assigned workspace role
A Microsoft Entra service principal can be assigned a Fabric workspace role for supported API-based operations. Its effective workspace permissions follow that role, so automation should receive the least privileged role that can perform its required item and scheduler actions.
6 questions test this
- You have a Microsoft Fabric workspace named ZephyrWS that contains a lakehouse and several data pipelines. A platform automation authenticates as a Microsoft Entra service principal that holds the Mem
- You have a Microsoft Fabric workspace named UpliftWS that contains a lakehouse named Landing3. An event-driven automation authenticates as a Microsoft Entra service principal that is assigned the View
- You have a Microsoft Fabric workspace named YarrowWS. A workspace admin created a workspace identity for YarrowWS last month, and the identity already has a role assignment on the target Azure Data La
- You have a Microsoft Fabric workspace named ThistleWS that contains a notebook named LoadUsage. A nightly automation authenticates as a Microsoft Entra service principal that is assigned the Viewer ro
- You have two Microsoft Fabric workspaces named EmberDev and EmberTest that are assigned to the Development and Test stages of a Fabric deployment pipeline. An Azure DevOps job authenticates as a Micro
- You have a Microsoft Fabric workspace named NimbusWS that contains a lakehouse and a notebook named LoadMeters. A nightly automation authenticates as a Microsoft Entra service principal, starts LoadMe
- Only workspace Admins can grant the Admin role
A workspace Admin can add or remove access across all workspace roles. A Member can add others only to the Member, Contributor, or Viewer roles and therefore cannot promote another principal to Admin.
2 questions test this
- You have a Microsoft Fabric workspace named PinnacleWS that contains a warehouse and several data pipelines. A data engineer who holds the Member role in PinnacleWS is asked to onboard a new platform
- You have a Microsoft Fabric workspace named OsloWS that contains a lakehouse, a warehouse, and several notebooks. A team lead must be able to add analysts to the Viewer role and engineers to the Contr
- Workspace identity provides Fabric-managed authentication without stored customer credentials
A workspace identity is a Fabric-managed service principal that obtains Microsoft Entra tokens for supported item connections and enables trusted workspace access for eligible OneLake shortcuts. A workspace Admin can create or manage it, while Fabric manages its credentials to avoid customer-managed secrets.
2 questions test this
- You have a Microsoft Fabric workspace named YarrowWS. A workspace admin created a workspace identity for YarrowWS last month, and the identity already has a role assignment on the target Azure Data La
- You have a Microsoft Fabric workspace named ThamesWS that contains a lakehouse and four data pipelines that copy files from an Azure Data Lake Storage Gen2 account. A workspace admin created a workspa
- Sharing grants direct item access without workspace membership
A shared recipient sees only the shared item rather than becoming a member of a workspace role. Sharing a lakehouse also grants access to its SQL analytics endpoint, but not to unrelated workspace items.
Trap Share a lakehouse to make the recipient a Viewer of every item in its workspace.
7 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains two lakehouses named Lakehouse1 and Lakehouse2. The Tables area of Lakehouse1 holds a OneLake shortcut that points to a De
- Contoso, Ltd. has a Microsoft Fabric workspace named AnalyticsWS that contains a warehouse named Warehouse1. Several Contoso employees read Warehouse1 because they hold roles in AnalyticsWS. Three par
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1, a warehouse named DW1, and a data pipeline named Pipeline1. A partner analyst who has no rol
- Contoso, Ltd. has a Microsoft Fabric workspace named DataWS that contains a lakehouse named Lakehouse3 and a warehouse named Warehouse3. A consulting vendor holds no role in DataWS. From the Direct ac
- Fabrikam, Inc. has a Microsoft Fabric workspace named Workspace1 that contains an eventhouse named Eventhouse1. Eventhouse1 holds three KQL databases, and one of them, named TelemetryDB, stores device
- Litware, Inc. has a Microsoft Fabric workspace named SalesWS that contains a lakehouse named Lakehouse4, a warehouse, and four notebooks. A partner data science team must read the Lakehouse4 Delta tab
- Litware, Inc. has a Microsoft Fabric workspace named FinanceWS that contains a warehouse named Warehouse2 and eight other items. A partner firm's analysts must read every table and view in Warehouse2
- Base Read permission opens an item but does not grant broad data reads
The default direct share grants Read so a recipient can open the item or connect to its endpoint. For a warehouse, Read alone does not authorize table queries; add granular SQL grants, ReadData, or the required OneLake permission according to the intended access path.
Trap Grant only Read on a warehouse and expect the recipient to select every table immediately.
7 questions test this
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 holds payroll tables and reference tables. A new analyst named User5 must be able to read the reference tables only. Your
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 holds payroll tables and reference tables. A new analyst named User5 must be able to read the reference tables only. Your
- You have a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. All Lakehouse1 tables are Delta tables in the Tables folder, and the workspace team queries them norm
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 contains 40 tables in the sales schema. You share DW1 with a marketing analyst named User4 and select Grant without addin
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A contractor named User8 was shared DW1 with Read all data using SQL and holds no role in the workspace. The contract has end
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. Using the DW1 query editor, you run GRANT SELECT statements that give a data analyst named User6 access to four reporting vie
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A compliance reviewer at Litware, Inc. must be able to find DW1 in the OneLake catalog, open it, and confirm that the SQL con
- ReadData and ReadAll authorize different Fabric data access paths
ReadData permits read-only T-SQL access to warehouse or SQL analytics endpoint tables and views. ReadAll grants access to underlying files through Spark and OneLake APIs; neither permission should be substituted for the other when an engine-specific requirement is stated.
Trap Grant ReadData when a notebook must read the item's Delta files directly through Spark.
6 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains two lakehouses named Lakehouse1 and Lakehouse2. The Tables area of Lakehouse1 holds a OneLake shortcut that points to a De
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A data scientist at Contoso, Ltd. was shared DW1 and granted Read all data using Apache Spark, and cannot be added to any wor
- Fabrikam, Inc. has a Microsoft Fabric workspace named SalesWS that contains a warehouse named DW2. A finance analyst and a data scientist both hold no role in SalesWS, and DW2 was shared with each of
- You have a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A reporting analyst at Litware, Inc. holds no role in Workspace1 and must run read-only T-SQL queries
- You have a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. An operations team that holds no role in Workspace1 must be alerted whenever a file lands in the Lake
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a mirrored database named MirroredDB1. A data scientist holds no role in Workspace1 and was shared MirroredDB1 with the de
- Item sharing is a read-consumption path rather than a write grant
Sharing a lakehouse or warehouse does not provide data write permissions. For a user who must modify tables or files through normal Fabric authoring paths, use a suitable workspace role such as Contributor unless a supported granular OneLake ReadWrite role precisely fits the lakehouse operation.
Trap Select Read all with Apache Spark in the sharing dialog to let the recipient overwrite lakehouse tables.
6 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A partner data engineer holds no role in Workspace1. You share Lakehouse1 with the engineer
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1 and a warehouse named DW1 that stores payroll data. An external auditing vendor must upload m
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1 and a data pipeline named Pipeline1. A business intelligence team was shared DW1 with the Read all d
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. A data engineer named User10 holds the Contributor role for Workspace1, and DW1 was also shared wit
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A machine learning partner holds no role in Workspace1. You share Lakehouse1 with the partne
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. A partner analyst holds no role in Workspace1 and was shared DW1 with the Read all data using SQL p
- Fabric Read plus SQL grants enables least-privilege warehouse object access
To expose selected warehouse objects, share the warehouse with base Read and then use T-SQL GRANT, REVOKE, or DENY for the required schemas, tables, views, functions, or procedures. Granting ReadData instead is broader because it is equivalent to read access across all warehouse tables and views.
Trap Grant ReadData when the requirement is to query exactly one approved view and no other warehouse objects.
5 questions test this
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. A support engineer holds a Microsoft Entra account in your tenant but no role in Workspace1. The en
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. DW1 holds 60 tables in the sales schema, including one named sales.Payouts that stores partner comm
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. DW1 contains three schemas named raw, curated, and reporting. A downstream analyst holds no role in
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. A new analyst named User11 must query two reporting views in DW1 and nothing else, and has no acces
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1 with 80 tables and 12 views. A compliance analyst who holds no role in Workspace1 must query exactly
- Share permission delegates only permissions the sharer already holds
A recipient with Share can reshare an item but can grant no more than that recipient's own permissions. Workspace Admins and Members can share a lakehouse by default; Contributors and Viewers require an explicit Share permission on that item.
5 questions test this
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A data engineer named User14 holds the Contributor role for Workspace1, created Lakehouse1,
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A data engineer named User13 holds the Contributor role for Workspace1 and was granted the S
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A partner program lead must onboard the partner's own analysts to Lakehouse1 without involvi
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A partner lead holds no role in Workspace1 and was shared Lakehouse1 with the Read all with
- Litware, Inc. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. A team lead named User12 holds the Viewer role for Workspace1 and was granted the Share perm
- Execution and OneLake event subscription require distinct item permissions
Execute authorizes executing or canceling an item's execution, while Subscribe to OneLake events authorizes event subscription for supported data items. Execute is a separate item grant from base Read and the SQL or Spark data-read permissions, but permission to subscribe to OneLake events for lakehouses, data warehouses, mirrored databases, and SQL databases is currently granted along with the Read All Apache Spark permission.
- Warehouse row-level security combines a predicate function with a security policy
Implement warehouse or SQL analytics endpoint RLS with an inline table-valued function that supplies the row predicate and a CREATE SECURITY POLICY statement that binds and enforces it. Filter predicates affect reads and qualifying UPDATE and DELETE operations at the database tier.
Trap Create a stored procedure as the predicate object referenced by CREATE SECURITY POLICY.
6 questions test this
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. You implemented row-level security on the table sales.Orders by using an inline table-valued function and an enabled security
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 contains a table named sales.Orders in which every row stores the user name of the sales representative that owns it. You
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. An enabled security policy filters the table sales.Orders so that each sales representative reads only the rows whose SalesRe
- Contoso, Ltd. has a Microsoft Fabric workspace that contains a lakehouse named Lakehouse1. Spark notebooks write Delta tables into Lakehouse1, and analysts query those tables with T-SQL through the la
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. Row-level security on the table sales.Orders is enforced by an inline table-valued function named Security.tvf_securitypredic
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 contains a table named sales.Orders that is protected by an enabled security policy whose filter predicate compares the S
- Warehouse column-level security grants access only to approved columns
Use column-scoped T-SQL GRANT permissions, preferably assigned to database roles, to let users query approved columns while denying access to sensitive columns. A query such as SELECT * fails when it includes a column for which the caller lacks permission.
Trap Use dynamic data masking when the requirement is to make queries that reference a forbidden column fail.
4 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace that contains a lakehouse named Lakehouse1 whose Delta tables are written by Spark notebooks. Analysts query those tables with T-SQL through the lakehous
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. To protect a sensitive column, you granted the reporting group SELECT on a named list of columns of the table dbo.Customers,
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. Last year a colleague granted a database role named AnalystRole SELECT on the whole table dbo.Customers. A new policy states
- Contoso, Ltd. has a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 contains a table named dbo.Customers whose columns include CustomerID, FirstName, LastName, Phone, Email, and Cr
- OneLake object-level security grants selected tables, schemas, or folders
OneLake table and folder security uses a grant model for structured and unstructured data. Because Delta tables and schemas are represented as folders in OneLake, a role can expose only selected tables, schema folders, or file folders and inherits folder access to their descendants.
Trap Use warehouse column-level GRANT statements to secure arbitrary unstructured files in a lakehouse folder.
3 questions test this
- Litware, Inc. has a Microsoft Fabric workspace named ComplianceWS that contains a schema-enabled lakehouse named Lakehouse1. A schema named curated holds eleven Delta tables, and the Files section of
- You have a Microsoft Fabric workspace that contains a schema-enabled lakehouse named Lakehouse1. The Tables section of Lakehouse1 contains a schema named gold that holds nine Delta tables, and two oth
- You have a Microsoft Fabric workspace that contains a lakehouse named Lakehouse1. In the Files section of Lakehouse1, a folder named raw contains a file named manifest.csv and a subfolder named archiv
OneLake RLS and CLS can restrict the same table together only when both policies are defined in a single OneLake security role. Splitting the row rule and column rule across separate roles is unsupported and causes query errors for affected users.
Trap Create one OneLake role for allowed rows and a second role for allowed columns, then assign both to the user.
7 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named FinanceWS that contains a lakehouse named Lakehouse1. A colleague created a OneLake security role named RowsOnly that filters the Delta table gold.
- Contoso, Ltd. has a Microsoft Fabric workspace named HRWS that contains a lakehouse named Lakehouse1. Recruiters must read only the rows of the Delta table gold.Applicants for their own country, and m
- You have a Microsoft Fabric workspace named OpsWS that contains a lakehouse named Lakehouse1 whose SQL analytics endpoint already runs in user's identity access mode. A OneLake security role named Fie
- Contoso, Ltd. has a Microsoft Fabric workspace named SalesWS that contains a schema-enabled lakehouse named Lakehouse1. A Delta table named gold.Orders holds a Region column and a Margin column. Regio
- You have a Microsoft Fabric workspace named RetailWS that contains a lakehouse named Lakehouse1. A OneLake security role named StoreManagers grants Read on the Delta table gold.Sales and filters the r
- Litware, Inc. has a Microsoft Fabric workspace named AnalyticsWS that contains a lakehouse named Lakehouse1. A OneLake security role named RegionRows grants Read on the Delta table gold.Claims and fil
- Litware, Inc. has a Microsoft Fabric workspace named InsuranceWS that contains a schema-enabled lakehouse named Lakehouse1. One OneLake security role named AdjusterAccess grants Read on the Delta tabl
- OneLake security roles cannot deny data access granted by a workspace role
OneLake security is additive: a role cannot deny access that another role or permission model grants. Workspace Admins, Members, and Contributors retain full item data access and are not restricted by OneLake roles; use Viewer or direct Read recipients when granular roles must govern their data view.
Trap Add a Contributor to a restrictive OneLake role to hide selected tables while preserving Contributor write privileges.
7 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named GovWS that contains a lakehouse named Lakehouse1 holding regulated data. The workspace has admins, members, contributors, and viewers, and several
- You have a Microsoft Fabric workspace named SalesOpsWS that contains a lakehouse named Lakehouse1. A OneLake security role named EastRows grants Read on the Delta table gold.Deals and filters it to th
- You have a Microsoft Fabric workspace named DataWS that contains a lakehouse named Lakehouse1. A business analyst was shared Lakehouse1 with Read and with Read all with Apache Spark, which grants the
- Contoso, Ltd. has a Microsoft Fabric workspace named ProdWS that contains a lakehouse named Lakehouse1 whose Delta tables hold regulated data. A design document states that support staff will keep the
- Litware, Inc. has a Microsoft Fabric workspace named MarketingWS that contains a lakehouse named Lakehouse1. A OneLake security role named AllTables grants the analyst group Read on every table of Lak
- You have a Microsoft Fabric workspace named IngestWS that contains a lakehouse named Lakehouse1 with twelve Delta tables. A data engineer holds the Contributor workspace role so that the notebooks the
- You have a Microsoft Fabric workspace named ResearchWS that contains a lakehouse named Lakehouse1. A OneLake security role named AllData grants the science group Read on all folders of Lakehouse1. A n
- SQL analytics endpoint security does not protect alternate lakehouse paths
Row, column, and object controls configured on a lakehouse SQL analytics endpoint apply only when users access data through that endpoint. Secure Spark and other access paths separately with workspace, item, or OneLake permissions; endpoint SQL rules do not govern those paths.
5 questions test this
- You have a Microsoft Fabric workspace named CorpWS that contains a warehouse named DW1 whose T-SQL rules restrict one table to a small finance group. A second workspace named ReportWS contains a lakeh
- Litware, Inc. has a Microsoft Fabric workspace named SupplyWS that contains a lakehouse named Lakehouse1 whose SQL analytics endpoint runs in delegated identity mode. Planners query the Delta table db
- Contoso, Ltd. has a Microsoft Fabric workspace named ClaimsWS that contains a lakehouse named Lakehouse1. Analysts read the Delta table dbo.Claims through the lakehouse SQL analytics endpoint, where o
- Contoso, Ltd. has a Microsoft Fabric workspace named HealthWS that contains a lakehouse named Lakehouse1. A data engineer configured object-level and row-level rules on the lakehouse SQL analytics end
- You have a Microsoft Fabric workspace named FinOpsWS that contains a lakehouse named Lakehouse1 whose SQL analytics endpoint runs in delegated identity mode. On that endpoint you created a security po
- Dynamic data masking obscures query results without changing stored values
A mask is defined on a sensitive warehouse or SQL analytics endpoint column and transforms what nonprivileged users see in result sets. The stored value remains unchanged, and available functions include default, email, random numeric, and partial string masks.
Trap Use a dynamic mask to permanently rewrite sensitive values in the underlying warehouse table.
8 questions test this
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 contains a table named dbo.Payment that has a numeric column named AuthAmount. A group of external contractors runs autom
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. DW1 contains a table named dbo.Employee that has a column named BankAccount. A colleague proposes running an UPDATE statement
- Fabrikam, Inc. has a Microsoft Fabric workspace that contains a warehouse named FlightDW. A mask was defined on the passport number column of a table named dbo.Passenger 14 months ago, and only nonpri
- Contoso, Ltd. has a Microsoft Fabric workspace that contains a warehouse named CrmDW. A table named dbo.Contact in CrmDW has a varchar column named ContactEmail. A support application queries dbo.Cont
- You have a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. DW1 contains a table named dbo.Customer that has a fixed-length string column named NationalID. A support te
- You have a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. Apache Spark notebooks load a Delta table named dbo.Patient into Lakehouse1, and dbo.Patient contains
- Litware, Inc. has a Microsoft Fabric workspace that contains a warehouse named CreditDW. A default mask is defined on the AnnualIncome column of a table named dbo.Borrower. An analyst holds the Viewer
- Contoso, Ltd. has a Microsoft Fabric workspace that contains a warehouse named ShopDW. A table named dbo.Shopper in ShopDW stores a phone number column that a support application reads with existing S
- Dynamic data masking must be combined with access controls against inference
Masking reduces accidental exposure but does not stop a user with query access from inferring values through carefully constructed predicates. Use least-privilege object, row, or column controls as the security boundary, and grant UNMASK only to users who must retrieve original values.
Trap Rely on masking alone to protect salary values from a user allowed to run unlimited filtering queries.
7 questions test this
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A table named dbo.Transaction in DW1 has four masked columns, including one named CardNumber. A fraud analyst must read the o
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A data engineer holds CONTROL on the DW1 database so that the engineer can create new tables that include masked columns in a
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. During a data migration, a contractor was granted the UNMASK permission on a table named dbo.Customer in DW1 so that source a
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A table named dbo.Order in DW1 has masked columns that hold customer contact details. A support engineer must run SELECT stat
- Litware, Inc. has a Microsoft Fabric workspace that contains a warehouse named StaffDW. A table named dbo.Staffer in StaffDW has a default mask on its DayRate column. A vendor management group holds t
- Litware, Inc. has a Microsoft Fabric workspace that contains a warehouse named CreditDW. A default mask is defined on the AnnualIncome column of a table named dbo.Borrower. An analyst holds the Viewer
- You have a Microsoft Fabric workspace that contains a warehouse named DW1. A table named dbo.Transaction in DW1 has four masked columns, including one named CardNumber. A fraud analyst must read the o
- Purview sensitivity labels classify Fabric items and can propagate through lineage
Users can manually apply published Microsoft Purview sensitivity labels to Fabric items, and default or programmatic labeling can expand coverage. Downstream inheritance is on by default for Fabric-to-Fabric and Fabric-to-Power BI lineage, subject to documented limitations; a label is classification and protection metadata, not a replacement for workspace or data permissions.
Trap Apply a sensitivity label as the only control needed to grant or deny table query access in every Fabric engine.
7 questions test this
- You have a Microsoft Fabric workspace that contains a lakehouse named Lakehouse1 and a pipeline named Pipeline1 that reads Lakehouse1 through lineage. Fully automated downstream inheritance is enabled
- You have a Microsoft Fabric workspace that contains a lakehouse named Lakehouse1 and eleven items that are built from Lakehouse1 through lineage, including notebooks, pipelines, and a semantic model.
- Contoso, Ltd. has a Microsoft Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. Several external consultants are guest users in the Contoso tenant and hold the Viewer role
- You have a Microsoft Fabric workspace that contains a lakehouse named Lakehouse1 and a pipeline named Pipeline1 that reads Lakehouse1 through lineage. Fully automated downstream inheritance is enabled
- You have a Microsoft Fabric workspace named Workspace1 that contains a warehouse named DW1. A data engineer holds the Contributor role for Workspace1 and a Power BI Pro license. Sensitivity labels are
- You have a Microsoft Fabric tenant in which sensitivity labels are enabled and a mandatory label policy is already configured. Data engineers create new lakehouses in a workspace named Workspace1 ever
- You have a Microsoft Fabric tenant that contains about four thousand existing items spread across many workspaces, and none of the items carries a sensitivity label. A compliance deadline requires tha
- Promoted, Certified, and Master data badges express different trust claims
An item writer can mark an item Promoted to indicate readiness for reuse, while only authorized reviewers can mark it Certified as meeting organizational quality standards. Master data is restricted to data-containing items designated as an authoritative core source and also requires authorized reviewers.
Trap Use Promoted to assert that an organization-authorized certifier has validated the item as authoritative.
7 questions test this
- Contoso, Ltd. has a Microsoft Fabric workspace named GoldWS that contains a lakehouse named Gold1. You created Gold1 and hold write permission on it. Analysts in several departments must be able to se
- Fabrikam, Inc. has a Microsoft Fabric workspace named CoreWS that contains a lakehouse named Core1, a semantic model named CoreSales, a data pipeline named LoadCore, and a notebook named CleanCore. A
- Fabrikam, Inc. has a Microsoft Fabric tenant in which item certification was enabled a year ago, and one security group of reviewers certifies items. The data governance board now designates a lakehou
- You have a Microsoft Fabric workspace named PatternWS that contains a notebook named Notebook1 that implements a reusable ingestion pattern. You own Notebook1 and hold write permission on it. Other da
- You have a Microsoft Fabric workspace named FinWS that contains a semantic model named FinSales, which currently carries the Promoted badge that its author applied. A Fabric administrator authorized y
- Contoso, Ltd. has a Microsoft Fabric tenant in which several workspaces contain lakehouses with similar names that hold customer data. The central data office reviewed one lakehouse against Contoso's
- Litware, Inc. has a Microsoft Fabric workspace named MdmWS that contains a lakehouse named ProductRef. ProductRef holds the product code tables that every downstream medallion pipeline in the tenant j
- Microsoft Purview Audit records searchable Fabric user and item activity
Users with the required Audit Logs or View-Only Audit Logs role access Fabric audit records in the Microsoft Purview portal and can filter by UTC date range, activity, user, and file, folder, or site. Use the audit log to investigate who performed an operation; the Monitoring hub instead focuses on runs for items the viewer can access.
Trap Use the Monitoring hub as the tenant-wide compliance record of every user's administrative and item operation.
6 questions test this
- Fabrikam, Inc. has a Microsoft Fabric tenant. Every user is licensed for Microsoft 365 E5, and an audit log retention policy keeps Fabric activity records for one year. An investigation needs the reco
- You have a Microsoft Fabric tenant. A pipeline overwrote a gold table at approximately 9 PM local time last Monday, and your local time zone is eight hours behind Coordinated Universal Time (UTC). You
- Contoso, Ltd. has a Microsoft Fabric tenant that contains dozens of workspaces. A compliance officer must establish which users ran, updated, and deleted items in three of those workspaces during the
- Contoso, Ltd. has a Microsoft Fabric tenant. A data engineer named User3 holds the Fabric administrator role and the Admin role in every workspace, and User3 must establish which users exported data f
- Litware, Inc. has a Microsoft Fabric tenant. An investigation must list every principal that created a OneLake shortcut anywhere in the tenant during a two-week window, including the service accounts
- Fabrikam, Inc. has a Microsoft Fabric tenant. An internal review must establish everything that two named contractors did with a file named payroll_export.csv that is stored in the Files section of a
Also tested in
References
- Permission model - Microsoft Fabric
- Roles in workspaces in Microsoft Fabric
- Workspace identity - Microsoft Fabric
- Share your warehouse and manage permissions - Microsoft Fabric
- Lakehouse sharing and permission management - Microsoft Fabric
- SQL granular permissions in Fabric Data Warehouse
- Row-level security in Fabric data warehousing
- CREATE SECURITY POLICY (Transact-SQL)
- Column-level security in Fabric data warehousing
- Dynamic data masking in Fabric Data Warehouse
- OneLake security access control model - Microsoft Fabric
- Information protection in Fabric
- Endorsement overview - Microsoft Fabric
- Track user activities in Microsoft Fabric