How do I govern data and AI assets consistently across clouds?
Unity Catalog is the unified governance layer for data and AI assets, applying access controls, row filters and column masks across the platform from one place. It tracks lineage automatically across data, models, services, and dashboards, and it can classify and tag sensitive data. Activity is recorded in the audit log system table, so compliance teams can review access with standard SQL. Unity Catalog documentation covers Azure and GCP as well as AWS, so the same governance model applies wherever your data lives.
What governance features does Unity Catalog provide?
Unity Catalog centralizes governance for data and AI assets, with role-based access control, attribute-based access control (ABAC) policies, row filters and column masks for fine-grained security, and sensitive-data classification. Lineage is tracked automatically across data, models, services, and dashboards, and activity is recorded in the audit log system table. Governed tags and Delta Sharing extend the same controls to metadata and external sharing. Some ABAC components, such as metastore-level policies, are still in beta.
What governance is essential for scaling AI agents in production?
Unity Gateway governs AI assets in three ways: permissions, through Unity Catalog privileges on model services, external model providers, MCP tools, custom tools and HTTP connections; consumption and cost controls, through rate limits, budgets with per-user thresholds and hard caps, and usage tracking via system tables; and guardrails, through service policies that apply to requests and responses. Request and response payloads can be logged to Unity Catalog Delta tables.
What does the Databricks Governance Hub provide across workspaces?
Governance Hub is a Beta, account-level UI for monitoring governance across your Databricks account. It covers data (governed tags, classification, data quality monitoring, object access), AI usage and spend, and cost (spend trends and tagging coverage), and an account admin enables it from the Previews page in the account console.
How do I grant and revoke privileges on Unity Catalog objects?
Unity Catalog privileges are granted per securable object, such as catalogs, schemas, tables, and functions, using GRANT and REVOKE SQL statements. Table privileges include SELECT and MODIFY, and EXECUTE applies to functions. A grant on a catalog or schema applies to the objects inside it, so granting MODIFY on a schema automatically covers all current and future tables in that schema. Inheritance from parent containers lets you manage access centrally across large catalogs.
How do I create a catalog in Unity Catalog?
You can create a catalog with Catalog Explorer, the SQL CREATE CATALOG command, the REST API, the Databricks CLI, or Terraform. Creating a catalog requires the CREATE CATALOG privilege on the metastore, and access to the catalog is controlled with grants such as USE CATALOG, CREATE SCHEMA, and BROWSE. Specifying a managed storage location is optional but strongly recommended, and it is required if the metastore has no metastore-level managed storage. Catalogs hold schemas and tables as a governed container.
What trigger types can automate Databricks jobs?
Lakeflow Jobs support scheduled triggers that run on a time-based schedule, table update triggers that run when source tables change, and file arrival triggers that run when new files land in a monitored Unity Catalog storage location. Continuous triggers keep a job running by starting a new run when one completes or fails, and manual runs can be started with Run now or from external orchestration tools. A model update trigger fires when a Unity Catalog model is created, a version is ready, or an alias is set, and the alias event is marked Beta. The Multiple Triggers setting, which allows up to five triggers per job, is also Beta.
How do I integrate external or third-party models with Databricks?
Databricks external models let you register providers such as OpenAI (including Azure OpenAI), Anthropic, Cohere, Amazon Bedrock, and Google Cloud Vertex AI, or any OpenAI API-compatible endpoint through the custom provider option, and serve them behind a Model Serving endpoint. Applications call the endpoint with the OpenAI client, the REST API, or the MLflow Deployments SDK, and provider credentials are stored as Databricks secrets or encrypted values. AI Gateway can add rate limiting, usage tracking, and guardrails. Network connectivity configurations with AWS PrivateLink for external models are in Public Preview.
How do I securely store and use secrets and API keys in Databricks?
Databricks secret scopes hold sensitive values such as API keys, passwords, and tokens in an encrypted database managed by Databricks, and you read them in code with dbutils.secrets.get(scope, key). Databricks redacts literal secret values read through dbutils.secrets.get(), replacing them with [REDACTED] when displayed. The MANAGE permission on a scope lets users read, write, and grant permissions on it, and the Secret ACLs documentation describes the full set of permission levels. Scope names are readable by all workspace users, so keep the sensitive values in the secrets themselves.
What are Unity Catalog volumes for storing non-tabular files?
Volumes give Unity Catalog governance over non-tabular files such as images, audio, video, PDFs, and JAR or Python wheel files. Create a managed volume, where Unity Catalog manages storage, or an external volume that registers an existing cloud storage path. Access files at /Volumes/<catalog>/<schema>/<volume>/<path> from Spark, SQL, and Python on Databricks Runtime 13.3 LTS or above or a SQL warehouse; external systems that read the cloud storage directly bypass Unity Catalog.
How do I securely store and use secrets in Databricks workflows?
Databricks secret scopes hold credentials that you read in jobs, notebooks, and code with dbutils.secrets.get(). Databricks redacts literal secret values read through dbutils.secrets.get(), replacing them with [REDACTED] where possible, although workspace admins, secret creators, and permitted users can still view secret contents. Grant the MANAGE permission on a scope to let users read, write, and grant permissions on it, and see the Secret ACLs documentation for the full permission levels.
Does Databricks support attribute-based access control, or do tags not control access?
Databricks supports attribute-based access control (ABAC) in Unity Catalog, where governed tags drive access decisions. A single ABAC policy can enforce row filters and column masks consistently across an entire metastore, catalog, or schema, so tagging data as PII can mask or restrict it everywhere. The docs mark some ABAC surfaces as Beta, including metastore-level policies, view policies, and DENY policies, so check their status before relying on them in production.
Is Unity Catalog data lineage still immature, or does it capture lineage automatically?
Unity Catalog captures data lineage automatically for queries run on Databricks, down to the column level, and shows connected notebooks, jobs, dashboards, and queries in a lineage graph. Once tables are registered in a Unity Catalog metastore and accessed through Spark DataFrame or Databricks SQL interfaces, lineage is captured without extra configuration. File paths also appear as lineage nodes, and column lineage for path-based access is recorded in the system.access.column_lineage system table.
How do you isolate dev, test, and prod environments when using a single Unity Catalog metastore?
Databricks recommends one Unity Catalog metastore per region, shared by all workspaces in that region, and using that single regional metastore for every development lifecycle scope, including dev, test, and prod. Catalogs are the primary unit of data isolation and can correspond to an environment, a team, a business unit, or a combination of these. When environments need strict separation, you can bind a catalog to specific workspaces so that only the assigned workspaces can access it.
Should Unity Catalog catalogs be organized by domain or by Bronze, Silver, and Gold layer?
Unity Catalog best practices tie catalog boundaries to environment, team, or business-unit scope, so catalogs are usually organized around ownership and isolation needs. The medallion architecture describes Bronze (raw, unvalidated), Silver (validated, cleaned, and enriched), and Gold (refined, business-aligned) layers. Databricks' medallion example places those layers as schemas inside one catalog, such as ops.bronze, ops.silver, and ops.gold.
How do you implement the medallion architecture in Unity Catalog?
The medallion architecture organizes data into Bronze, Silver, and Gold layers that reflect increasing data quality. Bronze holds raw, unvalidated data, Silver holds validated, cleaned, and enriched data, and Gold holds refined, business-aligned datasets for analytics, dashboards, and ML. In Databricks' example, each layer is a separate schema in one catalog, such as ops.bronze, ops.silver, and ops.gold, and the page presents this as an example rather than a requirement.
How do you manage Databricks secret scopes?
You can create a Databricks-backed secret scope with the Databricks CLI (version 0.205 or later), the Secrets API, or the workspace UI. Scope names must be unique within a workspace, can contain alphanumeric characters, dashes, underscores, @, and periods, and cannot exceed 128 characters. Notebooks read secrets with dbutils.secrets.get, and secret values are displayed as [REDACTED].
How do external tables in Unity Catalog differ from managed tables?
Managed tables are the default and recommended table type, and they cost less to store and query than external tables while maintaining and optimizing themselves automatically. External tables keep their data in cloud storage you own, registered through an external location, and Unity Catalog manages only their metadata rather than the data's lifecycle, optimization, or layout. Dropping an external table removes the metadata but leaves the data files in place, which suits data that managed tables do not support, such as JSON or Avro, and direct access from non-Databricks clients.
Does Unity Catalog track audit logs, and how do you query them?
Databricks audit logs record activity across your account, including authentication, user and group management, clusters, jobs, and other services. You can access and query them with the audit log system table, system.access.audit, which is currently in Public Preview. Databricks highly discourages moving audit data outside the platform, so querying the system table in place is the recommended approach.
What governance features does Unity Catalog provide for data and AI in Databricks?
Unity Catalog is the unified governance layer for data and AI in Databricks. It provides access control through privileges, attribute-based policies, row filters and column masks, and workspace bindings, along with lineage, auditing through the audit log system table, and automatic data classification. It also provides Catalog Explorer for discovering governed assets, data quality monitoring, and secure sharing across organizations and clouds through OpenSharing.
What is the general syntax for granting a privilege in Unity Catalog?
Grant privileges with GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>, where the principal can be a user, service principal, or group. This standard SQL form works for any securable object, such as a table, schema, or volume. Specify the securable type, such as TABLE, SCHEMA, or VOLUME, to target the object.
How do I access and query audit logs in Databricks?
Use the audit log system table, which is in Public Preview, to access and query your account's audit logs. The audit log reference catalogs events for services such as authentication, user and group management, clusters, jobs, dashboards, Genie, and Lakebase. Databricks highly discourages moving this data outside the platform, so you can query it in place.
Which Lakeflow system tables record job activity and how much history do they keep?
The Lakeflow system tables record job and pipeline activity in six tables, including jobs, job_tasks, job_run_timeline, job_task_run_timeline, pipelines, and pipeline_update_timeline. Each table has 365 days of free retention, and the latest record for each job, task, or pipeline is kept even when it is older than that. The jobs table is a slowly changing dimension, so the latest entry for each job is kept even when it is older than the retention window.
What does the query history system table record and who can read it by default?
system.query.history records queries run on SQL warehouses, on serverless compute for notebooks and jobs, and on Lakeflow pipelines, across all workspaces in the account in the same region. By default only admins can read it, and statement text is redacted unless you are an account admin or a member of the databricks_pii_access group. Admins can share query history access by creating a dynamic view for each user or group, as the docs recommend.
Which objects can be added to a Delta Sharing share?
A share can contain tables and table partitions, streaming tables, managed and foreign Iceberg tables, foreign Delta tables, views (including dynamic views), materialized views, metric views, volumes, Python UDFs, notebooks, AI models, and Genie Agents. Views, volumes, and AI models are all shareable alongside tables. Dynamic views are part of this list, which matters when you need to share filtered data.
Which external sources does Lakehouse Federation support for query federation?
Query federation supports MySQL, PostgreSQL, Teradata, Oracle, Amazon Redshift, Salesforce Data 360, Snowflake, Microsoft SQL Server, Azure Synapse, Google BigQuery, and Databricks. Catalog federation supports the legacy Databricks Hive metastore, external Hive metastores, AWS Glue, Snowflake, Palantir Foundry, Salesforce Data 360, and Workday Data Connect. The lists differ by federation type, so check your source against the correct list.
Which features are unsupported on standard access mode compute?
Standard compute supports most workloads, and the features it does not support include R, GPU-enabled compute, Databricks Runtime for ML, RDD APIs, and socket sources for streaming. For these features, use dedicated compute, and for Hive UDFs, use Unity Catalog UDFs, which the documentation recommends. Several limitations depend on the runtime, so check the runtime for your workload.
Can external engines run maintenance on managed Iceberg tables in Unity Catalog?
No. External clients connecting through the Iceberg REST catalog endpoint cannot run table maintenance such as expiring snapshots or removing orphan files on managed Iceberg tables. Managed Iceberg tables still support reads and writes from external engines through the endpoint, and Unity Catalog blocks commits that would add duplicate data files to a snapshot.
Can one ABAC policy cover every catalog in a metastore, including catalogs created later?
Yes, in Beta. A metastore-level ABAC policy, which can be a row filter, column mask, GRANT, or DENY, applies to every catalog, schema, and object supported by its policy type. Catalogs created after the policy is defined are covered automatically when they match its conditions, so administrators set governance once for the metastore.
How do users request access to a Unity Catalog object, and who receives the request?
In Catalog Explorer, a user opens the object, selects Request permissions, and chooses the principals and privileges in a dialog that includes a message field. Requests route to one or more configured access request destinations, and if several are configured, all of them receive the request. Destinations can be email, Slack, Microsoft Teams, or webhooks, and approvers must hold permission to grant access.
Do my row filters and column masks still apply when external engines like Spark read my tables?
Yes, for Unity Catalog tables. External engines can read governed tables with fine-grained access controls enforced, and Databricks uses a specialized serverless compute layer to filter and return sanitized data. Delta reads require Delta-Spark 4.1 or above with the Unity Catalog Spark connector 0.4 or above, and Iceberg reads require Iceberg-Spark 1.11 or above with Apache Spark 4.0 or above. Limits include reads only when fine-grained access controls are enforced (to write, the writing principal must be exempted from the ABAC policy), no dynamic views, and no projection of VARIANT columns. Customers are charged for this filtering, and users with access to system.billing.usage can see it, so include it in cost planning.