Dynamic Column-Level Security (CLS) Filtering for OneLake Security in Microsoft Fabric SQL Endpoints
Dynamic Column Filtering for OneLake Security CLS in Lakehouse SQL Endpoints
We would like to propose an idea regarding the current behavior of Column-Level Security (CLS) in Microsoft Fabric OneLake Security when accessing data through Lakehouse SQL Endpoints.
During troubleshooting and validation sessions with Microsoft Support, we confirmed that CLS is functioning as currently designed. However, we observed a limitation in how CLS behaves during schema validation and query execution from SQL Endpoints and Power BI semantic models.
Current Behavior
After creating a OneLake Security role with CLS restrictions:
Restricted columns are still exposed within the Lakehouse SQL Endpoint schema metadata.
The SQL Endpoint appears to scan or validate the complete table schema before executing the query.
If restricted columns exist in the semantic model, query definition, or metadata discovery process, queries fail with permission errors such as:
“SELECT permission was denied on the column…”
This happens even when users only intend to access permitted columns.
Because of this behavior:
- Power BI semantic models may fail during refresh or schema discovery.
- Developers must manually exclude restricted columns.
- Separate materialized lake views must be created for different security personas.
Additional maintenance and governance overhead is introduced.
Example Scenario
Table:
- EmployeeID
- EmployeeName
- Salary
- SSN
CLS Restriction:
- Salary
- SSN
Expected Experience:
Users should automatically see only:
- EmployeeID
- EmployeeName
Current Experience:
Restricted columns remain discoverable through schema validation, and queries may fail instead of dynamically filtering unauthorized columns.
Proposed Idea
We propose that the Lakehouse SQL Endpoint dynamically recognize the authenticated user principal and automatically apply CLS filtering during schema discovery and query execution.
In this approach:
Restricted columns would automatically be hidden from the schema presented to the user.
Only authorized columns would appear during Power BI schema discovery, SSMS access, and SQL query execution.
Queries and semantic models would execute successfully without requiring developers to redesign datasets or manually remove restricted columns.
Benefits
This approach would:
- Simplify Power BI and SQL development.
- Reduce dependency on materialized lake views.
- Improve enterprise scalability for self-service BI.
- Reduce maintenance overhead.
- Provide a more intuitive CLS experience for Lakehouse SQL Endpoints.
Currently, the materialized lake view workaround is functional, but it introduces operational complexity for enterprise environments managing multiple datasets, users, and security roles.
We believe dynamic CLS-aware schema filtering would significantly improve the usability and enterprise adoption of OneLake Security in Microsoft Fabric Lakehouses and SQL Endpoints.
Thank you for considering this idea.
Recent ideas
Data Pipelines - Run only selected activities
For debugging and testing pipeline activities during development, allow us to select one or multiple activities and run only the selected pipeline activities. For example, I'm working on editing ...frithjof_v4 hours agoCommunity ChampionNew612Views11likes2CommentsSemantic model connection bindings should be in source control (Git)
Semantic model data source connection bindings should be source controlled. A semantic model can contain multiple data source references, each of which can be mapped to a separate Fabric data connec...frithjof_v12 hours agoCommunity ChampionNew16Views1like0CommentsBulk changing column names in Visualizations Pane
We often use raw/api column names or measures with a set nomenclature to be consistent and to keep track of them but we do not want to display these names in the visuals. Currently we have to change ...vishal14019715 hours agoFrequent VisitorNew6Views0likes0Comments