This article explains how to control access to data and other objects in Unity Catalog.
Initially, users have no access to data in a metastore. Access can be granted by either a metastore admin, the owner of an object, or the owner of the catalog or schema that contains the object.
The metastore admin is a highly privileged user or group in Unity Catalog. Metastore admins have the following permissions:
Create catalogs, external locations, shares, and recipients.
Manage the privileges or transfer ownership of any object within the metastore, including storage credentials, external locations, shares, recipients, and providers.
Read and update the metadata of all objects in the metastore.
Delete the metastore.
Grant themselves read and write access to all data in the metastore (no direct access by default; granting permissions is audit logged).
The account admin who creates a metastore is its initial owner and metastore admin. Databricks recommends that the account admin delegate this responsibility by nominating a group as the metastore admin. By doing this, any member of the group is automatically a metastore admin.
To transfer the metastore admin role to a group:
Log in to the account console.
Click the name of a metastore to open its properties.
Under Metastore Admin, click Edit.
Select a group from the drop-down. You can enter text in the field to search for options.
It can take up to 30 seconds for a metastore admin assignment change to be reflected in your account, and it may take longer to take effect in some workspaces than others. This delay is due to caching protocols.
All securable objects in Unity Catalog have an owner. Object owners have all privileges on that object, including the ability to grant privileges to other principals. See Manage Unity Catalog object ownership.
Access privileges can be granted by either a metastore admin, the owner of an object, or the owner of the catalog or schema that contains the object. See Unity Catalog privileges and securable objects.
Securable objects in Unity Catalog are hierarchical and privileges are inherited downward. This means that granting a privilege on the catalog automatically grants the privilege to all current and future objects within the catalog. Similarly, privileges granted on a schema are inherited by all current and future objects within that schema. See Inheritance model.
If you created your Unity Catalog metastore during the public preview (before August 25, 2022), you can upgrade to Privilege Model version 1.0 with privilege inheritance. See Upgrade to privilege inheritance.
Unity Catalog supports the SQL keywords
REVOKE for managing privileges on catalogs, schemas, tables, views, and functions.
An object’s owner or a metastore admin can list all grants on the object. If the object is contained within a catalog or schema (for example, a table or view), the owner of the catalog or schema can also list all grants on the object.
See the SQL reference documentation for examples of this syntax:
Catalog Explorer provides a UI to complete these actions; see Manage Unity Catalog permissions in Catalog Explorer.
To transfer ownership of an object within a metastore, you can use SQL or Catalog Explorer. See Manage Unity Catalog object ownership or Manage Unity Catalog object ownership in Catalog Explorer.
Dynamic views allow you to manage which users have access to a view’s rows, columns, or even specific records by filtering or masking their values. See Create a dynamic view.