Prepstellar

DP-700 · Access Control and Data Masking

25 cards

Item Permissions and Sharing

Swipe, scroll or use ← →
  1. Open one item, not the workspace

    A workspace role opens every item in a workspace. Often that is too much: an analyst needs one warehouse, or a manager needs one report. For that case Fabric has item permissions, and you give them by sharing.

    Item permissions control access to one Fabric item and do not apply to other items. You can use item permissions to give a user access to a single item in a workspace that the user cannot access. The person does not become part of the workspace:

    • A user who receives an item through sharing cannot see other items in the workspace and is not a member of any workspace role.
    • Sharing a lakehouse grants access to the lakehouse without giving access to the workspace and the rest of its items.
    • Shared recipients of a warehouse have access only to that warehouse, and not to other items in the same workspace.

    This is the tool for least privilege. Suppose an engineer was a Contributor and now only needs to read one lakehouse. To follow least privilege, remove the user from the workspace role and share the single item, so the user can reach that item and nothing else in the workspace.

    1 / 25
  2. Quick check

    An analyst with no workspace role receives a shared warehouse. What else in the same workspace can the analyst open?

    1. AEvery item, in read-only mode

      Read-only access to every item is what the Viewer workspace role gives. Sharing one item does not create a role.

    2. BThe lakehouses, but not the pipelines

      Sharing does not spread to items of a similar type. Each item must be shared on its own.

    3. CNothing else

      Right. A shared recipient reaches only the shared item and is not a member of any workspace role.

    2 / 25

  3. Know what a plain share gives

    When you select Share on an item, a dialog asks who receives it and which extra permissions to add. If you add nothing, the recipient gets one permission only.

    Sharing an item grants the Read permission for that item by default. Read lets the user see the metadata of the item and view any reports associated with it, but it does not give access to the underlying data in SQL or OneLake.

    For a warehouse this is very concrete. If no additional permissions are selected, the recipient of a warehouse gets Read, which only allows a connection to the SQL analytics endpoint, the equivalent of CONNECT permissions in SQL Server. With Read alone, the recipient cannot query any table or view, and cannot execute any function or stored procedure.

    For a lakehouse it is the same idea. By default, sharing a lakehouse grants Read on the lakehouse and on the associated SQL analytics endpoint. When you share an item, Read is always included.

    3 / 25
  4. Know what a plain share gives

    So Read is a key to the front door, not to the rooms. The recipient can find the item, open it, and connect. The tables stay closed until something else opens them.

    With Read alone, the recipient can With Read alone, the recipient cannot
    See the item and its metadata Query a table or a view with T-SQL
    Connect to the SQL analytics endpoint Read the files with Spark or OneLake APIs
    View reports associated with the item Change anything in the item

    This is also why a common support case is not a fault. When users can open a shared lakehouse but cannot query data, check that they have the permission that matches their access path. The next section lists those permissions.

    4 / 25
  5. Quick check

    A warehouse is shared with a user, and no additional permission is selected. The user connects with a SQL client and runs a SELECT on a table. What happens?

    1. AThe connection works, but the query on the table is denied

      Right. Read alone works like CONNECT: the user reaches the SQL analytics endpoint and cannot query any table or view.

    2. BThe connection is rejected before the query can run

      Read is enough to connect. A rejected connection is what happens when the user has no Read at all.

    3. CThe query returns rows, but only in read-only mode

      Reading all tables in read-only mode is the result of the option Read all data using SQL, which was not selected here.

    5 / 25

  6. Add the right data permission

    The sharing dialog offers extra permissions. Each one opens a different way of reading, so choose it by the tool that the recipient will use.

    Option in the dialog Permission What it opens
    Read all data using SQL (warehouse); Read all SQL endpoint data, also shown as Read all with SQL analytics endpoint (lakehouse) ReadData All tables and views through T-SQL
    Read all data using Apache Spark (warehouse); Read all with Apache Spark (lakehouse) ReadAll All data through Spark and OneLake APIs
    Build reports on the default semantic model (lakehouse) Build Power BI reports on the default semantic model

    The labels change a little between the warehouse dialog, the lakehouse dialog, and older material. Read the permission behind the label: a SQL option gives ReadData, and a Spark option gives ReadAll.

    6 / 25
  7. Add the right data permission

    ReadData is the SQL permission. With ReadData, the recipient can read all the tables and views within the warehouse in read-only mode. ReadData is the equivalent of the db_datareader role in SQL Server. In the SQL analytics endpoint of a lakehouse, the option Read all SQL endpoint data is equivalent to Read all data using SQL. The lakehouse sharing dialog can also show this option with another label. On a lakehouse, Read all with SQL analytics endpoint lets the recipient read data from the SQL analytics endpoint through T-SQL.

    ReadAll is the lake permission. ReadAll is for a recipient who needs complete access to the files of the warehouse through the Spark engine. On a lakehouse, Read all with Apache Spark lets the recipient read lakehouse data through Apache Spark and OneLake APIs. A recipient with ReadAll can find the ABFS path to a file in OneLake from the Properties pane of the warehouse editor, and can use this path in a Spark notebook to read the data. Permission to subscribe to OneLake events is currently granted along with the Read all Apache Spark permission.

    7 / 25
  8. Add the right data permission

    The key rule is that the two data permissions are independent. ReadData and ReadAll are separate permissions that do not overlap. One does not include the other, so give each recipient the permission that matches the way of reading.

    The lakehouse shows this clearly. A user with only Read all with SQL analytics endpoint can access data with the SQL analytics endpoint URL, but cannot access the data with the lakehouse URL. If the user also needs access through the lakehouse URL, grant Read all with Apache Spark in addition.

    Two more facts about ReadAll on a lakehouse:

    • Granting the Spark read option on a lakehouse also adds the recipient to the DefaultReader OneLake security role of the lakehouse. The OneLake security lessons explain how to restrict that access.
    • Both additional data access permissions grant access to all the data in the lakehouse by default.

    The Build option lets the recipient create Power BI reports on the default semantic model.

    8 / 25
  9. Quick check

    A partner team will read a shared warehouse only from Spark notebooks, through the ABFS path of its files. Which option should the owner select when sharing?

    1. ARead all data using SQL

      That option gives ReadData, which opens tables and views through T-SQL. It does not open the files for Spark.

    2. BRead all data using Apache Spark

      Right. Reading files through Spark needs ReadAll, and ReadAll is separate from the SQL permission.

    3. CNo additional permissions, because Read is enough for files

      Read alone opens no data in SQL or OneLake. It lets the recipient connect and see metadata only.

    9 / 25

  10. Keep your progress in the app

    That’s 3 of 9 quick checks. In the app they stay answered, and every lesson remembers where you left off.

    Opens in your browser. Nothing to install.

    Start studying

    On your phone, with the same account

    Get it on Google Play Download on the App Store
    Keep reading here
  11. Share first with Read, then grant in SQL

    ReadData opens every table and view. Many requirements are narrower: this analyst may read two tables, not two hundred. For SQL access there is a standard pattern, and it uses Read on purpose.

    To give granular access to specific objects within a warehouse, share the warehouse with no additional permissions, and then give access to the specific objects with the T-SQL GRANT statement.

    Each half has a job. The share gives Read, so the user can connect. The GRANT statement decides which objects the user can query. A workspace role is the wrong tool for this need. Even the Viewer role reads all warehouse data with T-SQL by default. The lesson on SQL granular security in the warehouse teaches the statements; here the point is the pattern.

    Need Sharing choice Then
    Read every table with T-SQL Read all data using SQL Nothing more
    Read only some tables with T-SQL No additional permissions GRANT on those objects
    Read every table with Spark Read all data using Apache Spark Nothing more
    10 / 25
  12. Share first with Read, then grant in SQL

    Read is not optional in this pattern. For a user to connect to a warehouse or SQL analytics endpoint, the user must have a workspace role or the item Read permission, and without Read the connection fails. If a user has no workspace role and no item permission, the connection to the SQL analytics endpoint is rejected, regardless of any SQL permissions that exist for that user. SQL permissions alone never let anyone in.

    The order of the two steps is your choice, and it matters for security. To set up granular permissions before a user connects, define the permissions in SQL first, and then give access with a workspace role or with item permissions. In this order, the user sees the right objects from the first connection.

    One detail makes this possible. When you run GRANT or DENY, Fabric creates the database user automatically. So you can grant to a person who has never connected. The lesson on SQL granular security in the warehouse covers this in detail.

    The opposite order is weaker. After ReadData is given, access to some objects can be restricted further with the T-SQL GRANT, REVOKE, and DENY statements. But between the share and the restriction, the user can already read every table and view.

    11 / 25
  13. Quick check

    An admin runs GRANT on one table for a user who has no workspace role and no shared item. The user then tries to connect to the warehouse. What happens?

    1. AThe connection fails, because the user has no Read on the item

      Right. SQL permissions do not let anyone in. The user needs a workspace role or item Read before the connection works.

    2. BThe user connects and can query that one table

      This is the result after the warehouse is also shared with the user. Without Read, the GRANT waits unused.

    3. CThe user connects, but sees an empty list of tables

      Connecting needs Read on the item. With no role and no share, the user does not get as far as a table list.

    12 / 25

  14. Check who can share

    Not everyone who can edit an item can share it. The permission to share has its own name, Reshare, and the workspace role decides who has it at the start.

    • Workspace Admin and Member roles can share by default.
    • Workspace Contributor and Viewer roles can share a lakehouse only if they are granted the Share (reshare) permission on that lakehouse.

    So when a Contributor says that the Share button is not available, the first check is this permission. The fix does not need a higher role. Admin and Member can allow others to reshare items. So one of them gives the Contributor Reshare on that one lakehouse.

    Sharing has clear limits on what it can give:

    • Sharing a lakehouse grants read access only, and does not grant workspace membership or write permissions.
    • On a warehouse, the Write permission is not shareable.
    • To let other users collaborate on a warehouse with read and write access, add them to a workspace role such as Member or Contributor.
    13 / 25
  15. Check who can share

    The warehouse adds limits of its own:

    • Shared recipients do not have permission to reshare a warehouse.
    • Sharing a warehouse directly with a service principal is not currently supported.
    • Sharing a warehouse is currently available only through the user experience.
    • Shared recipients access the warehouse with the identity of the owner, so the owner of the warehouse must not be removed from the workspace.

    Put the rules together when you read a scenario:

    Scenario Answer
    A Contributor must share one lakehouse Give Reshare on that lakehouse
    A recipient must write to a warehouse Sharing cannot do it; use a workspace role
    A recipient of a warehouse wants to pass it on Not possible; an Admin or Member shares it
    14 / 25
  16. Quick check

    A Contributor cannot share a lakehouse with another team. The Contributor must not get a higher workspace role. What solves it?

    1. AGrant the Contributor Reshare on the lakehouse

      Right. Contributor and Viewer can share a lakehouse only with the Share (reshare) permission on it. No role change is needed.

    2. BGrant the Contributor Read all data using Apache Spark on the lakehouse

      A Contributor already reads all data through the role. A data permission does not add the right to share.

    3. CShare the SQL analytics endpoint instead

      Sharing a lakehouse also covers its SQL analytics endpoint. The endpoint is not a way around the missing Reshare.

    15 / 25

  17. Manage and remove item permissions

    After a share, you need a place to see and change what people have. That place is the Manage permissions page of the item. The Manage permissions page shows the users who have access through workspace roles or through item permissions.

    On a warehouse, three actions remove access at different sizes:

    • Remove access removes all item permissions.
    • Remove ReadData removes only the ReadData permission.
    • Remove ReadAll removes only the ReadAll permission.

    So you can take away the Spark access of a recipient and keep the SQL access, without sharing again.

    The same page repairs a share that was too wide. If a recipient got ReadData but should read only some tables, remove ReadData and keep Read. The recipient can still connect, and the T-SQL GRANT on specific objects decides what can be queried.

    Changes are not instant for the user. When you provide item permissions or remove users, permission propagation can take up to two hours. The new permissions are visible in Manage permissions immediately. This produces a confusing picture: the page already shows the new state, and the user still works with the old one. Signing in again makes sure that the permissions are reflected in the SQL analytics endpoint. For a lakehouse, permission updates can also take up to two hours to propagate for signed-in users.

    16 / 25
  18. Quick check

    A recipient has ReadData and ReadAll on a shared warehouse. The owner wants to stop the Spark access and keep the T-SQL access. Which action in Manage permissions fits?

    1. ARemove access, then wait two hours

      Remove access deletes all item permissions, so the T-SQL access would go too. Waiting does not bring it back.

    2. BRemove ReadData

      ReadData is the T-SQL permission. Removing it would stop the access that must stay and keep the Spark access.

    3. CRemove ReadAll

      Right. ReadAll is the Spark and OneLake permission. Removing only this one leaves Read and ReadData in place.

    17 / 25

  19. Give report readers what the report needs

    Reports add one more step. A report on a warehouse is shared with a manager, and the manager has nothing else. Does the report show data? It depends on how the semantic model reads the warehouse.

    Mode of the semantic model Extra permission on the warehouse
    Direct Lake ReadData, or granular SQL permissions on the tables or views
    DirectQuery ReadData, or granular SQL permissions on the tables or views
    Import None
    • If a report on a warehouse uses DirectQuery mode, the recipient of the report needs ReadData on the warehouse, or granular SQL permissions on specific tables or views.
    • If a report on a warehouse uses Direct Lake mode, the recipient of the report needs ReadData on the warehouse, or granular permissions on specific tables or views.
    • If a report on a warehouse uses Import mode, the recipient of the report needs no additional permissions.

    The reason is simple. In Import mode the data is imported into the semantic model, and the recipient has access to it there. In the other two modes the recipient needs access on the warehouse itself.

    18 / 25
  20. Give report readers what the report needs

    One fact makes the first row the usual case. Direct Lake is the default connection type for semantic models that use a warehouse or SQL analytics endpoint as a data source. So when a report on a warehouse is shared with no other step, expect that the recipient still needs ReadData or granular SQL permissions on the warehouse.

    The same idea applies to a lakehouse. With Direct Lake, the report reads the data directly from the lakehouse, and the recipient of the report needs access to those files in the lake. One alternative is to switch the data source credential from single sign-on to a fixed identity that has access to the files in the lake.

    And a report grant never opens the tables for direct queries. A recipient who views a shared Direct Lake report must also have OneLake data permissions to query the underlying Delta tables directly.

    19 / 25
  21. Quick check

    A report on a warehouse is shared with a manager who has no other access. In which mode of the semantic model does the manager need no permission on the warehouse?

    1. ADirect Lake, the default connection type

      With Direct Lake, the reader needs ReadData or granular SQL permissions on the warehouse. It is also the default connection type.

    2. BImport, where data is copied into the model

      Right. In Import mode the data is already inside the semantic model, so no additional permission is needed.

    3. CDirectQuery, where queries go to the warehouse

      DirectQuery sends queries to the warehouse for the reader, so ReadData or granular SQL permissions are needed.

    20 / 25

  22. Count both paths before you say access is removed

    Item permissions and workspace roles live side by side. When you share an item or change its permissions, workspace roles do not change. A share adds a path; it does not replace the path that was already there.

    A user who receives a shared item can access it regardless of the workspace role that the user has. The reverse is also true, and it is the classic surprise. If item permissions are removed from a user who has the Viewer role in the workspace, the user can still open the item from the workspace and view its content.

    A user can reach an item by two separate paths, and removing the direct grant leaves the workspace path open.removedUserViewer roleworkspaceDirect grantitemReport
    The Viewer role still opens the report. Closing one path says nothing about the other.
    21 / 25
  23. Count both paths before you say access is removed

    To stop a workspace Viewer from viewing an item, removing the item permissions is not enough; the Viewer role in the workspace must be removed too.

    Change made What the person can still do
    Remove the direct item permission only Open the item from the workspace, through the Viewer role
    Remove the Viewer role only Open the item through the shared link
    Remove both Nothing, because no path is left

    Without a workspace role, the user cannot see that the item exists, and without item permissions the link to the item does not work. And the door can be opened again in a narrow way. A user with no workspace role can view a shared item through its link, without having access to the workspace.

    The habit that follows is short. Before you say that access is removed, list every path that the person has, not only the one in front of you.

    22 / 25
  24. Quick check

    A user is a Viewer in a workspace and also has a direct share of one report in it. The owner removes the direct share. What can the user do now?

    1. AOpen the report from the workspace

      Right. The Viewer role is a second path. It still shows the report in the workspace and lets the user open it.

    2. BOpen nothing, because the share was the only path

      The share was one of two paths. A workspace role gives access to all items in the workspace on its own.

    3. COpen the report only through the old link

      The link depended on the item permission that was removed. What remains is the access through the workspace.

    23 / 25

  25. Key takeaways

    • A plain share gives Read, and Read opens no data. On a warehouse, Read alone lets the recipient connect to the SQL analytics endpoint, like CONNECT, without querying any table.
    • ReadData is the SQL permission. It opens all tables and views in read-only mode and is the equivalent of db_datareader.
    • ReadAll is the Spark permission, and it is separate from ReadData. A lakehouse recipient who has only the SQL option needs the Spark option too before a notebook can read the data.
    • For some tables only, combine a plain share with a GRANT in SQL. Define the SQL permissions first and share afterwards, so the user never sees more than intended. A share that already gave ReadData is repaired by removing ReadData.
    • Admin and Member share by default. Contributor and Viewer need Reshare on the lakehouse.
    • Permission changes can take up to two hours to propagate. Manage permissions shows them at once.
    • Import needs nothing more for report readers. Direct Lake and DirectQuery reports on a warehouse need ReadData or granular SQL permissions.
    • Two paths, two removals. Removing an item permission does not remove access that comes from a workspace role.
    24 / 25
  26. Quick check

    Which statement about item permissions is correct?

    1. AOn a warehouse, ReadAll includes ReadData, so the Spark option covers T-SQL

      ReadData and ReadAll are separate permissions that do not overlap. Each way of reading needs its own.

    2. BA Contributor can share any lakehouse in the workspace by default

      Admin and Member share by default. A Contributor needs the Share (reshare) permission on the lakehouse.

    3. CSharing with no extra permission lets the recipient connect but not query tables

      Right. The default is Read. On a warehouse it works like CONNECT, and tables stay closed without ReadData or a GRANT.

    25 / 25

  27. 9 quick checks · then the test

    In the app, finishing the quick checks opens this lesson’s 10-question test, and the ones you miss come back exactly when you’re about to forget them.

    Take this lesson’s test → Next lesson: OneLake Row, Column, and Folder Security

    Opens in your browser. Nothing to install.

    Start studying

    On your phone, with the same account

    Get it on Google Play Download on the App Store

The whole course, on your computer and your phone

Lessons you can read, audio you can listen to on the way to work, and practice that remembers what you got wrong.

Opens in your browser. Nothing to install.

Start studying

On your phone, with the same account

Get it on Google Play Download on the App Store

“This app is the ‘One Lake’ for preparing the certification exams. Really worth it.”

Abdelhak Y. Google Play review