Workspace roles and item-level access in Fabric

DP-700 · Implement and manage an analytics solution · Updated

Access in Fabric works in layers: the workspace role, permissions on a single item, and then data-level rules inside the warehouse or SQL endpoint. The exam mostly asks you to choose the smallest layer that does the job.

Workspace roles

Roles apply to every item in the workspace.

RoleCan do
ViewerView and read data through SQL endpoints; cannot create or edit
ContributorCreate, edit and delete items; cannot share or manage people
MemberEverything Contributor does, plus add people with lower roles and share items
AdminEverything, including delete the workspace and add Admins

“Create items, least privilege” is almost always Contributor. A role is inherited by all items, so it is too broad when the user should reach only one item.

Item-level sharing

You can share a single item without giving any workspace role. For a lakehouse, the share dialog offers extra permissions:

  • Read all SQL endpoint data: query tables with T-SQL only.
  • Read all Apache Spark: read the files and tables through Spark and OneLake.
  • Build reports on the default semantic model.

Pick the SQL option when the requirement says “must not use Spark to read the files”.

Data-level security in a warehouse

These features are T-SQL based and work in the warehouse and the SQL analytics endpoint.

  • Row-level security (RLS): create an inline table-valued function that returns the rows a user may see, then a security policy with a filter predicate on the table.
  • Column-level security: GRANT SELECT on specific columns only.
  • Dynamic data masking (DDM): hides values at query time. Functions are default(), email(), random() and partial().
  • Object-level permissions: GRANT, DENY and REVOKE on tables, views and schemas.
ALTER TABLE dbo.DimCustomer
ALTER COLUMN EmailAddress
ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXX",5)');

GRANT UNMASK TO [Group2];

Users with the UNMASK permission see real values. Workspace Admin, Member and Contributor roles also bypass masking, so mask for Viewers or item-shared users.

OneLake data access roles

In a lakehouse you can also define folder-level roles on files and tables (OneLake security). Use them when different users need different folders of the same lakehouse.

Exam traps

  • Viewer is not “no access”: Viewers can read data through the SQL endpoint, so do not assume it blocks queries.
  • Giving a user the Member role to reach one lakehouse breaks least privilege; share the item instead.
  • Masking is not encryption and does not stop a user inferring values with filters.
  • RLS needs both the function and the security policy; the function alone does nothing.
  • Contributor, Member and Admin see unmasked data.

Practice questions

Choose an answer, then review the explanation to check your understanding.

1. A user must be able to create and edit items in a workspace but must not manage access for others. Following least privilege, which role do you assign?

Show answer

Answer: B.Contributor can create and edit items but cannot share items or manage users. Member and Admin can add people.

2. An analyst needs to query the tables of one lakehouse through the SQL analytics endpoint only, with no access to other items and no Spark access to files. What do you do?

Show answer

Answer: C.Sharing the single item with the SQL read permission limits the user to the SQL analytics endpoint. The Spark permission would expose the underlying files.

3. Each sales representative must see only their own rows in a warehouse table. Which objects do you create?

Show answer

Answer: B.Row-level security in a warehouse uses an inline table-valued function as the predicate and a security policy that binds it to the table.

4. The EmailAddress column must show only the first character and the last five characters to most users. Which masking function fits?

Show answer

Answer: D.partial(prefix, padding, suffix) keeps a custom number of leading and trailing characters, for example partial(1,"XXXX",5).

DP-700 course outline

All 7 lessons · Course overview
  1. Workspace roles and item-level access in FabricImplement and manage an analytics solution Free
  2. Git integration and deployment pipelinesImplement and manage an analytics solution Free
  3. Data pipelines, notebooks and orchestrationIngest and transform data Full access
  4. Eventstreams, windowing and Real-Time IntelligenceIngest and transform data Full access
  5. Delta tables, loading patterns and T-SQL in FabricIngest and transform data Full access
  6. Monitoring runs with Monitoring hub and alertsMonitor and optimize an analytics solution Full access
  7. Spark settings, high concurrency and performance tuningMonitor and optimize an analytics solution Full access