Problem
When attempting to access Unity Catalog tables using a single-user cluster on a Databricks Runtime version below 15.4 LTS, you encounter a permission error.
: java.util.concurrent.ExecutionException: com.databricks.sql.managedcatalog.acl.UnauthorizedAccessException: PERMISSION_DENIED: User is missing required privileges to access this table from an Assigned cluster. Please try with a SHARED cluster instead.
Cause
You’re attempting to access the table without the required privileges, and the single-user cluster does not support the necessary access control. Fine-grained access control (FGAC) is not available for Unity Catalog on single-user clusters using Databricks Runtime versions below 15.4 LTS.
Solution
There are three options available to resolve the issue.
- Use a shared cluster or warehouse instead of a single-user cluster.
- Use a serverless compute option.
- Keep the single-user cluster, but upgrade your Databricks Runtime version to 15.4 LTS or above.
To change the Databricks Runtime version:
- Go to your Databricks workspace and navigate to Compute.
- Select the cluster to update.
- In the Databricks Runtime Version section, select a version that is 15.4 or above.
- Click Update to apply the changes.
Preventive measures
- Ensure you’re using a compatible Databricks Runtime version when working with Unity Catalog in single-user access mode.
- Verify you have the necessary privileges to access tables you need.