Managing data access is crucial in any data-driven organization, and with the introduction of Microsoft Fabric Lakehouse, it’s more important than ever to understand how to secure your data. In this post, we’ll dive into how you can control access to a Lakehouse or Warehouse within Microsoft Fabric. You’ll learn about the different roles, security options, and how to effectively manage access to ensure your data remains secure.
Understanding Workspace Roles
In Microsoft Fabric, workspace roles play a fundamental role in access management. There are four primary roles you need to be familiar with:
- Admin: Full access to manage the workspace and its contents.
- Member: Can create and manage items within the workspace.
- Contributor: Can contribute to the workspace but has limited permissions compared to members.
- Viewer: Can only view the SQL endpoint data but cannot access the Lakehouse data directly.
For example, if a user is assigned the viewer role, they can interact with the SQL endpoint but won’t be able to access the actual data in the Lakehouse. This separation of roles ensures that sensitive data is only accessible to authorized individuals.

Managing Access in the Lakehouse
When managing access to your Lakehouse, it’s essential to understand how permissions work. For instance, if a user has viewer access, they can connect to the SQL endpoint and query data, but they won’t see the actual Lakehouse. If they try to access the Lakehouse directly, they’ll receive a permissions error.
To illustrate this, let’s take a look at a user named John Doe who has viewer access. If he tries to access the Lakehouse, he will encounter an error indicating he lacks the necessary permissions. However, if he connects through the SQL endpoint, he can view the data available there.

Sharing Access to SQL Endpoints
What if you want to allow external tools to connect without giving full workspace access? Microsoft Fabric allows for sharing access specifically to the SQL endpoint. This can be particularly useful for organizations that need to integrate with third-party tools or external applications.
For example, as an admin, you can share the SQL endpoint with another user, granting them the ability to read data without exposing the entire workspace. This is achieved through the sharing options within the Lakehouse settings.

Granular Control with Row-Level and Column-Level Security
To enhance security, Microsoft Fabric supports row-level security (RLS) and column-level security (CLS). These features allow you to control access at a more granular level, ensuring users only see the data they are permitted to access.
Implementing Row-Level Security
Row-level security allows you to restrict data access based on user roles and attributes. For instance, you can set up a policy that allows sales representatives to see only the data relevant to their territories. This is done by creating a security policy that filters data based on a user’s identity.
Implementing Column-Level Security
Column-level security further enhances data protection by restricting access to specific columns within a table. If you have sensitive information that should not be visible to all users, you can deny select permissions on those columns.
For example, if Jane Doe is denied access to the ‘Revenue’ column in the sales data, any query that attempts to access that column will result in a permissions error. This allows you to tailor data access precisely to your organization’s needs.

Connecting and Querying Data
Once access is established, users can connect to the SQL endpoint using tools like SQL Server Management Studio. For instance, when Jane Doe connects to the SQL endpoint, she can execute SQL queries to retrieve data she’s permitted to access. However, her lack of workspace access means she won’t see the workspace listed in her connection options.
This capability allows for seamless integration with existing data tools while maintaining strict access controls. Users can work with the data they need without compromising the security of the entire Lakehouse.

Conclusion
Understanding and implementing access controls in Microsoft Fabric Lakehouse is essential for maintaining the security of your data. By leveraging workspace roles, sharing options, row-level security, and column-level security, you can ensure that only authorized users have access to sensitive information.
As we look forward to the upcoming OneSecurity feature for OneLake, it promises to enhance our ability to manage data access even further. Keep exploring these features to maximize the security and efficiency of your data management practices within Microsoft Fabric.
What are your thoughts on the security options available in Microsoft Fabric? Are you excited about the potential of OneSecurity? Share your insights in the comments below!
Boost your data skills with expert-led Power BI training. We have partnered with Microsoft to bring high quality Power BI training.



CLS Does Not Work in Fabric
Grant doesn’t recognize the token to indicate columns. If I try to grant select ON table(colA, colB) then a DENY SELECT on table(ColC) it doesn’t protest. But it also doesn’t create the behavior. When you read the permissions, you’ll see that it grants select twice to the User Table, and one deny…the selects overriding the deny.
SELECT
role.name AS role_name,
perm.permission_name,
perm.state_desc,
obj.name AS object_name,
obj.type_desc AS object_type
FROM sys.database_permissions perm
JOIN sys.database_principals role ON perm.grantee_principal_id = role.principal_id
JOIN sys.objects obj ON perm.major_id = obj.object_id
WHERE role.name = ‘Employee_View’
AND obj.name = ‘personalinformation’;
—
role_name permission_name state_desc object_name object_type
Employee_View SELECT GRANT personalinformation USER_TABLE
Employee_View SELECT GRANT personalinformation USER_TABLE
Employee_View SELECT DENY personalinformation USER_TABLE