Protecting Data
Learn how Immuta enforces policies on data in your Databricks Unity Catalog environment
In the Databricks Unity Catalog integration, Immuta administers Databricks Unity Catalog privileges on data registered in Immuta. Then, Immuta users who have been granted access to the data sources can query them.
The sequence diagram below outlines the events that occur when an Immuta user who is subscribed to a data source queries it in Databricks Unity Catalog.

Registering a connection
The Databricks Unity Catalog integration is configured and data is registered through connections, an Immuta feature that allows administrators to register data objects in a technology through a single connection to make data registration more scalable for your organization.
Once the Databricks Unity Catalog connection is registered, you can author subscription and data policies in Immuta to enforce access controls.
See the Databricks Unity Catalog integration reference guide for more details about registering a connection.
Protecting data
Subscription policies
When a subscription policy is applied to a data source, users who meet the conditions of the policy will be automatically subscribed to the data source. Immuta creates and manages Databricks Unity Catalog groups for those users (if an appropriate group does not already exist), grants the required Unity Catalog privileges to the group, and adds the entitled users to that group.
Consider the following example that illustrates how Immuta enforces a subscription policy that only allows users in the analysts group to access the yellow-table. When this policy is authored and applied to the data source, Immuta creates an Immuta-managed Databricks group (if needed), grants the SELECT privilege on yellow-table to that group, and adds users who are members of the analysts group to it.

In the image above, the user in the analysts group accesses yellow-table, while the user who is a part of the research group is denied access.
User permissions Immuta revokes
On securable objects
If you enable a Databricks Unity Catalog object in Immuta, Immuta will only manage users' access to that data object after a subscription policy grants them access to the data source. Immuta preserves all preexisting grants in Databricks and only revokes user access when explicitly dictated by an Immuta policy.
Expand the collapsible blocks below to see how Immuta-managed grants and Databricks-managed grants are affected in various scenarios.
If a user is not registered in Immuta, Immuta will have no effect on that user's access to data in Unity Catalog.
On schemas and catalogs
By default, Immuta will revoke Immuta users' USE CATALOG and USE SCHEMA privileges in Unity Catalog for users that do not have access to any of the underlying securables within that catalog/schema. If users have any Immuta-managed or Databricks-managed grants to a securable, Immuta will not revoke that catalog/schema access.
If you disable this setting, Immuta will only revoke the permissions granted on the securable objects themselves, and users' USE CATALOG and USE SCHEMA permissions will remain even if the user does not have access to any resource in that catalog/schema.
See the App settings page for instructions on changing this setting.
Data policies
After Databricks Unity Catalog objects are registered in Immuta, you can author data policies in Immuta to enforce fine-grained access controls.
When a data policy is applied to a Databricks Unity Catalog data source, Immuta enforces that policy natively in Databricks. Depending on the policy type, Immuta applies SQL user-defined functions (UDFs) to enforce row-level security and column masking on registered tables so that queries return policy-enforced results.
As data policies are created, updated, or removed in Immuta, Immuta updates the corresponding SQL UDFs in Databricks to keep enforcement in sync. Users continue querying the Databricks Unity Catalog object directly and see policy-enforced data in Databricks.
See the Data policies page for guidance on authoring data policies in Immuta and the supported data policies for the Databricks Unity Catalog integration.
Last updated
Was this helpful?

