Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredJoin us at FabCon Vienna from September 15-18, 2025, for the ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM. Get registered
Instead of giving a user read access to the whole workspace, I want to share one table with a user.
I have created the table and column level security via T-SQL scripte below. I have share the data warehouse with the user with read only permission, how can the user find this table without direct access to the workspace or warehouse ?
Solved! Go to Solution.
Here is my findings after some tests:
1. to share a table with a user, I need to share the whole warehouse with the user with "read" only permission, however, this will cause a problem when user connect to the database via Power BI desktop.
2. Due to read permission, user can access all the tables in the warehouse via PB Desktop, also user won't be able to read data from the table with Column Level Security because by default PB Desktop will select all columns, which will cause an error due to CLS setup.
So to conclude, the whole security solution suggested by Microsoft is flawed. For the moment, the best way is to share the whole warehouse with the user. Sharing a single table with a user requires additional security setup in Fabric and need thorough test before put into implementation.
@Jeanxyz what's the use case for wanting to share a single table in a fabric warehouse?
One approach is to import the table into Power BI by importing the Parquet table files. Recall that the Fabric warehouse, similar to the lakehouse, is built on data lake architecture.
To import the Parquet table files, follow these steps:
Open Power BI Desktop.
Select "Get Data" and choose "Parquet" from the list of data sources.
Navigate to the location of your Parquet files and select the file you want to import.
Load the data into Power BI and start building your visuals.
Here is my findings after some tests:
1. to share a table with a user, I need to share the whole warehouse with the user with "read" only permission, however, this will cause a problem when user connect to the database via Power BI desktop.
2. Due to read permission, user can access all the tables in the warehouse via PB Desktop, also user won't be able to read data from the table with Column Level Security because by default PB Desktop will select all columns, which will cause an error due to CLS setup.
So to conclude, the whole security solution suggested by Microsoft is flawed. For the moment, the best way is to share the whole warehouse with the user. Sharing a single table with a user requires additional security setup in Fabric and need thorough test before put into implementation.
Hi @Jeanxyz ,
Did the above suggestions help with your scenario? if that is the case, you can consider Kudo or Accept the helpful suggestions to help others who faced similar requirements.
Regards,
Xiaoxin Sheng
Hi, in what way do you want the user to "find" the table? You can share the SQL-endpoint string with the user and the user can query that table with any tool/in any application of preference, for example in Azure Data Studio. However, the user will not be able to see the table in the Fabric UI.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
5 | |
3 | |
3 | |
3 | |
2 |