Unity Catalog explained: grants and storage

Updated October 9, 2026

Unity Catalog is the governance layer built into Azure Databricks: it controls who can use which tables, files and AI assets, records lineage and audit logs, and tracks every asset under one three-level name, catalog.schema.object. The decision rule for exams: privileges are granted at a level and inherited downward, and reading a table needs three things (USE CATALOG, USE SCHEMA, SELECT), while files are governed through volumes, not through raw storage paths. Most Unity Catalog questions are a variation on one of those two sentences.

The address: metastore, catalog, schema, object

Everything starts at the metastore, the top-level container for metadata and permissions. Microsoft’s best-practice guidance states that you can have only one metastore per region and that all workspaces in that region share it (Unity Catalog best practices). Below it sit three levels:

LevelHoldsTypical use
CatalogSchemasThe main unit of data isolation: one per environment, team or business unit
SchemaTables, views, volumes, functions, modelsOne per team or subject area
ObjectThe table, view, volume or function itselfThe thing a query names

A table is therefore always addressed as sales_prod.orders.invoices. Some objects are not inside a catalog at all: storage credentials, external locations, connections and shares sit directly under the metastore. Every object is a securable object, which means you can grant permissions on it to users, groups or service principals. Unity Catalog is enabled by default for workspaces created after 9 November 2023, according to the same documentation.

Granting access: one worked example

An analyst group finance-analysts must read sales_prod.orders.invoices and nothing else in the catalog. The grants:

GRANT USE CATALOG ON CATALOG sales_prod TO `finance-analysts`;
GRANT USE SCHEMA  ON SCHEMA  sales_prod.orders TO `finance-analysts`;
GRANT SELECT      ON TABLE   sales_prod.orders.invoices TO `finance-analysts`;

All three are required. The documentation says USE CATALOG and USE SCHEMA alone do not give SELECT on the objects inside, but they are a prerequisite for it; a user holding only SELECT on the table still fails. That is the single most tested fact in this topic.

Now the inheritance shortcut. Granting SELECT on the schema gives SELECT on every current and future table and view in it, and granting it on the catalog reaches every schema below. The reference page for privileges spells this out per privilege (for example MODIFY and READ VOLUME). Inheritance only flows downward and cannot be switched off for a single child, so broad grants are convenient and risky at the same time. The least-privilege answer on an exam is usually the lowest level that satisfies the requirement, granted to a group rather than to individuals; the best-practice page recommends groups for grants and for object ownership, and service principals for running production jobs (see managed identities versus service principals).

Three more privilege facts that show up:

  • BROWSE lets a user see metadata (names, lineage, search results) without access to the data, so people can discover a table and request access.
  • ALL PRIVILEGES covers the privileges of the object and its children but not MANAGE, READ METADATA, EXTERNAL USE SCHEMA or EXTERNAL USE LOCATION; the owner of an object holds all privileges on it and can grant them.
  • Only metastore admins, owners and holders of MANAGE can grant privileges on an object. Owners of a parent catalog or schema can also grant on everything inside.

Managed or external: where the files live

Tables and volumes come in two kinds. With a managed table, Unity Catalog governs access and also manages the data files, including their lifecycle; managed tables are always Delta or Apache Iceberg. With an external table, Unity Catalog governs access only, while the files stay where you put them and are managed in your cloud. Databricks recommends managed tables for new tables; external tables fit migrations from Hive metastore, non-Delta formats such as Parquet or ORC, or cases where outside tools must read and write the same files. Dropping an external table leaves its data in storage, which is a classic question. For the table format itself see Delta Lake explained.

Volumes versus external locations

These two are confused constantly.

VolumeExternal location
GovernsFiles of any format (non-tabular)A cloud storage path, combining a path with a storage credential
Lives inCatalog > schema, third levelDirectly under the metastore
Path/Volumes/<catalog>/<schema>/<volume>/<path>abfss://[email protected]/...
PrivilegesREAD VOLUME, WRITE VOLUMEREAD FILES, WRITE FILES, CREATE EXTERNAL TABLE, CREATE EXTERNAL VOLUME, CREATE MANAGED STORAGE
Meant forDay-to-day file access: landing zones, images, libraries, checkpointsSetting up governed storage; registering external tables and volumes on top

On Azure, an external location needs a storage credential, which is an Azure managed identity reached through an access connector for Azure Databricks, with a role such as Storage Blob Data Contributor on the storage account. Databricks guidance says to give users volumes or tables rather than READ FILES on the location, and never to create an external table or volume at the root of an external location, because that blocks further objects at that location. Files in a volume cannot be registered as tables; volumes are for path-based access only.

Which exams test this

ExamHow it appearsOn this site
DP-750Secure and govern Unity Catalog objects (15–20%): grant privileges to users, groups and service principals, authenticate with service principals and managed identities, track lineage, configure audit logging; Set up and configure (15–20%) adds creating catalogs, schemas, volumes and managed or external tablesUnity Catalog security
Databricks Data Engineer AssociateGovernance and Security (15%): managed versus external tables, GRANT, REVOKE and DENY at the right level of the hierarchy, row and column restrictions and ABAC policiesGovernance and troubleshooting
Databricks Data Engineer ProfessionalOutline from October 9, 2026: Data Security and Compliance (8%) applies least-privilege grants to Unity Catalog securables and ABAC policies; Data Governance (5%) covers the permission inheritance model; Data Ingestion (12%) adds Lakehouse Federation governed by Unity Catalog permissionsSecurity, governance, sharing
Databricks Data Analyst AssociateSecuring Data (8%): the three-level namespace, roles and sharing settings, table ownership; Section 1 (11%) adds catalogs, schemas, managed and external tables and lineage in Catalog ExplorerAnalyzing and securing, Platform and data
Databricks ML AssociateMinor topic, Databricks Machine Learning (38%): feature store tables and the model registry in Unity Catalog, and why they beat the workspace-level versionsDatabricks Machine Learning explained
Databricks GenAI EngineerMinor topic: write chunked text to Delta tables in Unity Catalog (Data Preparation, 14%) and register the model to Unity Catalog with MLflow (Assembling and Deploying, 22%)Assembling and deploying
Databricks ML ProfessionalMinor topic, Model Deployment (12%): register a custom PyFunc model and its artifacts in Unity CatalogMLOps explained

How exam questions are built around Unity Catalog

Stems describe a person who “can see the schema but gets a permission error” or “needs to read files in cloud storage”. Look for these decisions:

  • Missing prerequisite. Table SELECT granted, still denied: the missing piece is USE CATALOG or USE SCHEMA.
  • Scope. “All current and future tables in a schema” points to a schema-level grant. “Only this one table” points to a table-level grant.
  • Files or tables? “Non-tabular, images, PDFs, libraries” means a volume. “Query in place without copying” means an external table. “Copy into Delta” means ingest into a managed table.
  • Least privilege. Reject ALL PRIVILEGES, ownership transfer and metastore admin when a single privilege works. Reject READ FILES on an external location when a volume would do.
  • Who runs the job. A service principal with only the grants the pipeline needs, not a person.

Row filters and column masks are part of the same access-control area; see row-level security. Where governed tables fit in a bronze-silver-gold design is covered in medallion architecture.

Practice questions

Question 1. A group has been granted SELECT on the table prod.sales.orders. Members of the group run SELECT * FROM prod.sales.orders and receive a permission error. They have no other grants. What is missing?

  • A. MODIFY on the table
  • B. Ownership of the table
  • C. USE CATALOG on prod and USE SCHEMA on prod.sales
  • D. CREATE TABLE on the schema
Show answer

Answer: C

Reading a table requires SELECT on the table plus USE CATALOG on its catalog and USE SCHEMA on its schema. SELECT alone is not enough. MODIFY allows writes, not reads. Ownership of the table would give far more access than needed. CREATE TABLE lets users make new tables and does not help them read an existing one.

Question 2. Data scientists need to read and write image files in a governed location, using the same path from notebooks, SQL and Python. The files are not tabular and no one should receive direct access to the underlying storage account. What should the data engineer create and grant?

  • A. An external table, with SELECT granted to the group
  • B. A volume, with READ VOLUME and WRITE VOLUME granted to the group
  • C. A storage credential, with READ FILES granted to the group
  • D. An external location, with READ FILES and WRITE FILES granted to the group
Show answer

Answer: B

A volume governs non-tabular files and is addressed with /Volumes/catalog/schema/volume paths; READ VOLUME and WRITE VOLUME grant access to it. READ FILES on an external location gives path-level access to storage and is discouraged for end users. An external table is for tabular data, and files in a volume cannot be registered as a table. A storage credential is an administrative object that users should not be handed.

Go deeper