Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This page has an overview of access control in Unity Catalog, including privileges, policies, and data-level controls.
Layers of access control
Access control in Unity Catalog is built on the following complementary models:
- Workspace-level restrictions control where users can access data, by limiting objects to specific workspaces.
- Privileges and ownership control who can access what, using grants on securable objects.
- Attribute-based policies (ABAC) control what data users can access, using governed tags and centralized policies.
- Table-level filtering and masking control what data users can see within tables using table-specific filters and views.
These models work together to enforce secure, fine-grained access across your data environment.
Layer | Purpose | Mechanisms |
---|---|---|
Workspace-level restrictions | Limit which workspaces can access specific catalogs, external locations, and storage credentials | Workspace-level bindings |
Privileges and ownership | Control access to catalogs, schemas, tables, and other objects | Privilege grants to users and groups, object ownership |
Attribute-based policies | Use tags and policies to dynamically apply filters and masks | ABAC policies and governed tags |
Table-level filtering and masking | Control what data users can see within tables | Row filters, column masks, dynamic views |
Workspace-level restrictions
Workspace binding limits which workspaces in your account can access specific catalogs, external locations, and storage credentials. This access control happens at the workspace level and applies regardless of user or group privileges.
By default, all catalogs, external locations, and storage credentials in Unity Catalog are accessible from any workspace attached to the same metastore. Using bindings you can:
- Restrict access to one or more designated workspaces
- Make catalog access read-only from certain workspaces
- Isolate environments, for example, restrict production data to production workspaces
- Limit use of external locations and storage credentials to specific workspaces
These bindings override user-level permissions. If a user has privileges on an object but tries to access it from an unbound workspace, access is denied.
For more information, see Limit catalog access to specific workspaces.
Privileges and ownership
Access in Unity Catalog is primarily governed by privileges and object ownership. This model defines who can access or manage data and metadata by assigning admin roles and by granting privileges and managing ownership across securable objects. This section describes how privileges are granted, how ownership works, and which admin roles can manage access across different scopes.
Admin roles
Unity Catalog supports multiple admin roles:
- Account admin: Can create metastores, manage identities, assign metastore admins, and manage account-level features like Delta Sharing and system tables.
- Metastore admin: An optional but powerful role that can manage all objects in the metastore, transfer ownership, and assign top-level privileges like
CREATE CATALOG
,CREATE EXTERNAL LOCATION
, and more. - Workspace admin: Manages identities, workspace-level settings, and the workspace catalog.
For details, see Admin privileges in Unity Catalog.
Object ownership
Every securable object, such as a catalog, schema, or table, in Unity Catalog has an owner. Ownership grants full control over that object, including the ability to:
- Read or modify the object and its metadata
- Grant privileges to other users
- Transfer ownership to another principal
Unity Catalog also supports a MANAGE
privilege, which allows users to grant access and modify objects without making them the owner.
For more on ownership, see Manage Unity Catalog object ownership.
Privileges on securable objects
In Unity Catalog, access control starts with privileges. You assign privileges such as SELECT
, MODIFY
, and USE SCHEMA
to users and groups on securable objects such as catalogs, schemas, tables, views, volumes, and functions.
Privilege enforcement is:
- Hierarchical: Grants on higher-level objects, like catalogs, cascade to lower-level objects, like tables.
- Delegable: Every object has an owner who can manage it and grant access to others.
- Explicit: Access is only allowed when a user or group has been granted the appropriate privileges. A user is granted the union of permissions from all the groups they are a member of.
For more information, see Manage privileges in Unity Catalog and Unity Catalog privileges and securable objects.
Attribute-based access control (ABAC)
Important
This feature is in Beta.
ABAC is a centralized, tag-based policy framework for enforcing access control in Unity Catalog. It enables admins to define scalable policies that apply dynamically across catalogs, schemas, and tables based on governed tags. Policies can filter data or mask sensitive values. Databricks recommends using ABAC for centralized and scalable governance, rather than applying filters or masks individually on each table.
ABAC is designed as a general-purpose framework for applying access control policies based on metadata attributes. It complements privilege-based controls and supports fine-grained enforcement without requiring per-object configuration.
Key features:
- Tag-driven policies: Define policies once using governed tags and user-defined functions (UDFs), and apply them consistently across many data assets.
- Hierarchical enforcement: Apply policies at the catalog, schema, or table level with automatic inheritance to child objects.
- Centralized, scalable governance: Manage access at scale without assigning individual privileges on each object.
- Dynamic evaluation: Access decisions are evaluated in real time based on tags and user context.
For more information, see Unity Catalog attribute-based access control (ABAC).
Table-level filtering and masking
This section covers mechanisms that control what data users can see at query time using table-specific logic. These include:
- Row filters and column masks: apply logic directly to tables.
- Dynamic views: define logic using SQL over one or more tables.
These approaches can be used independently or alongside ABAC, depending on your governance model.
Row filters and column masks
Row filters and column masks apply filter or mask logic directly to individual tables using UDFs. They are useful when you want to enforce logic per table without centralized policy management.
For more, see Row filters and column masks.
Dynamic views
Dynamic views allow you to define logic over one or more tables using SQL. They are read-only and useful for:
- Applying transformation logic (for example joins and
CASE
statements) - Sharing filtered data using Delta Sharing, where ABAC is not supported.
For details, see Create a dynamic view.
When to use each access control mechanism
Workspace bindings, privileges, and ABAC policies all evaluate access at different levels, and they are designed to be used together. The following table compares them across common access control criteria:
Note
Databricks recommends using ABAC to centralize and scale access control based on governed tags. Use row filters and column masks only when you need per-table logic or haven't adopted ABAC yet.
Mechanism | Applies to | Defined using | Use case |
---|---|---|---|
Workspace bindings | Catalogs, external locations, storage credentials | Workspace assignment | Restricting access to objects from specific workspaces |
Privileges | Catalogs, schemas, tables | Grants (GRANT , REVOKE ), ownership |
Baseline access and delegation |
ABAC policies | Tagged objects (tables, schemas) | Policies with governed tags and UDFs | Centralized, tag-driven policies and dynamic enforcement |
Table-level row/column filters | Individual tables | UDFs on the table itself | Table-specific filtering or masking |
Dynamic views | Views over one or more tables | SQL (with embedded filters or masks) | Read-only access, complex logic, Delta Sharing |