Hi @RJ1 - Welcome to Databricks Platform!
Great question. This is a very common requirement.
At a high level, youāll want to separate the concerns:
- How users authenticate and are identified (who is the user / which customer are they from?)
- How data is filtered so they only see their own rows (row-level security/ABAC)
- How the dashboard is actually exposed (inside Databricks vs embedded in your own app)
Identifying which customer a user belongs to: You said you donāt always know in advance which specific user from a customer will log in. In practice, you still need some way to map a user to a customer. That could either be based on email domain mapping or SCIM/identiity providers such as Entra, Okta where groups are managed and you sync those into Databricks/Unity Catalog. Without such mapping, Databricks (or any platform) canāt reliably enforce Customer 1 vs Customer 2 isolation.
Enforcing row-level security: Once you can identify a userās customer, you can enforce row-level security at the data layer so dashboards work as expected. You can use Unity Catalog with attribute-based access control (ABAC) and row filters on the base tables, or centralise row-level security at the table or view level, which means any downstream dashboards, SQL queries, or notebooks automatically respect that isolation without custom logic per dashboard. This is generally the most scalable and "Databricks-native" approach.
Options for sharing dashboards: A few patterns you can consider depending on whether your external users have Databricks accounts:
a) If your external users have Databricks accounts, you can create then as users in your Databricks account and assign them to the right groups with appropriate entitlements. You can then use ABAC or row filters so that the dashboards are filtered to their customer based on that. You can share Databricks SQL dashboards with those users/groups directly...
b) If your external users don't have Databricks accounts, you can typically introduce an application layer where you can build a lightweight web app/portal (e.g. using your preferred framework) and Use embedded Databricks dashboards. You can authenticate users into apps and determine which customer they belong to and show the bdashboards they are entitled to see. This gives you more control over branding, multi-tenancy, throttling, and youāre not giving direct Databricks UI access to every external user.
c) Delta Sharing is best when you want to share data, not dashboards, with external parties so they can consume it in their own tools (Power BI, Tableau, their own Databricks workspace, etc.). This offloads visualisation to them, but you still centrally manage which rows they get.
Hope this helps.
If this answer resolves your question, could you mark it as āAccept as Solutionā? That helps other users quickly find the correct fix.
Regards,
Ashwin | Delivery Solution Architect @ Databricks
Helping you build and scale the Data Intelligence Platform.
***Opinions are my own***