Step-by-Step Solution
Step 1: Identify the System Service Principal
Because system-generated SPs are hidden from the standard Workspace Users UI, you must query it using the Databricks CLI or REST API.
Run this command in the Databricks CLI:
Bash Command -
databricks apps get <your-app-name>
Look for the service_principal_id or service_principal_client_id field in the JSON payload output.
Step 2: Grant ADLS Gen2 RBAC Access in Azure
- Open the Azure Portal and navigate to your ADLS Gen2 Storage Account.
- Go to Access Control (IAM) $\rightarrow$ Add role assignment.
- Select Storage Blob Data Contributor (or Storage Blob Data Reader for read-only schema checks).
- Assign access to the Client ID retrieved in Step 1.
Step 3: Grant Unity Catalog Privileges (If using Unity Catalog)
If your app checks schemas via Unity Catalog External Locations or Volumes, grant permissions directly to the app's Service Principal or service account:
SQL
-- Grant access to the App Service Principal in Databricks
GRANT USE LOCATION ON EXTERNAL LOCATION `<your_external_location_name>` TO `<app-sp-client-id>`;
GRANT READ FILES ON EXTERNAL LOCATION `<your_external_location_name>` TO `<app-sp- client-id>`;