Ashwin_DSA
Databricks Employee
Databricks Employee

Hi ,

As already covered by other contributors, what you want is only partially possible in Unity Catalog.

You can make a user see metadata for a table without being able to read its data by using the BROWSE privilege. Databricks documents that BROWSE lets users discover objects and view metadata, but it does not grant access to the underlying data.

The limitation is that for tables and views, BROWSE is granted at the catalog level, not per individual table. That means if tables A, B, and C are in the same catalog, granting BROWSE so the user can discover A would also make other objects in that catalog discoverable from a metadata perspective.

So if A, B, and C are all in the same schema/catalog boundary, Unity Catalog does not support the exact pattern of "metadata-only on A, but completely hide B and C including schema and metadata."

If you need that behaviour, the usual approach is to separate A into its own catalogue, grant BROWSE on that catalogue, and do not grant SELECT on A. You can also refer to the Unity Catalog best practices, which explain that BROWSE is for metadata discovery only and does not grant data access.

Also, the information schema documentation notes that metadata views are privilege-aware and only return objects the user has privileges to access, so hidden objects will not appear there unless you grant visibility-related privileges.

If this answer resolves your question, could you mark it as “Accept as Solution”? That helps other users quickly find the correct fix.

Regards,
Ashwin | Delivery Solution Architect @ Databricks
Helping you build and scale the Data Intelligence Platform.
***Opinions are my own***