<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Governance for vector search across multi domain unstructured data in Generative AI</title>
    <link>https://community.databricks.com/t5/generative-ai/governance-for-vector-search-across-multi-domain-unstructured/m-p/163358#M1955</link>
    <description>&lt;P class="PDq2pG_selectionAnchorContainer" data-end="167" data-start="0"&gt;The short answer on index architecture: separate indexes per domain is usually the right call for an enterprise setup, not a single shared index with metadata filters.&lt;/P&gt;
&lt;P data-end="722" data-start="169"&gt;Here's why the "one index with filtering" approach is tempting but fragile. Vector Search doesn't support row or column level security. When you query a shared index, the filtering happens at the application layer, which means your RAG layer is responsible for enforcing access, not the platform. That's a governance gap that gets worse as the number of domains grows. If a developer forgets to pass the domain filter, or the filter is misconfigured, users can retrieve embeddings from domains they shouldn't touch. There's no platform-level safety net.&lt;/P&gt;
&lt;P data-end="1098" data-start="724"&gt;With separate indexes per domain, you get actual access isolation. Each index lives in a catalog/schema scoped to that domain, and Unity Catalog ACLs control who can even call the endpoint. A user without &lt;CODE data-end="937" data-start="929"&gt;SELECT&lt;/CODE&gt; on the schema can't query the index at all, independent of what the application does. That's enforcement you can audit, not application logic you have to trust.&lt;/P&gt;
&lt;P data-end="1144" data-start="1100"&gt;&lt;STRONG data-end="1144" data-start="1100"&gt;Index and schema layout for 20+ domains:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-end="1231" data-start="1146"&gt;Put each domain's indexes in its own schema, ideally under a domain-specific catalog:&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="contents"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="pe-11 pt-3"&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;PRE class="cm-content q9tKkq_readonly m-0"&gt;&lt;CODE&gt;&lt;SPAN&gt;catalog: sales_domain
    schema: embeddings
        table: customer_docs_index
        table: product_docs_index

catalog: marketing_domain
    schema: embeddings
        table: campaign_docs_index&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="1583" data-start="1445"&gt;Grant the domain team &lt;CODE data-end="1480" data-start="1467"&gt;USE CATALOG&lt;/CODE&gt;, &lt;CODE data-end="1494" data-start="1482"&gt;USE SCHEMA&lt;/CODE&gt;, and &lt;CODE data-end="1508" data-start="1500"&gt;SELECT&lt;/CODE&gt; on their catalog. Cross-domain access is an explicit grant, not a default.&lt;/P&gt;
&lt;P data-end="1758" data-start="1585"&gt;&lt;STRONG data-end="1618" data-start="1585"&gt;If you do need a shared index&lt;/STRONG&gt; (e.g., a cross-domain search experience where the retrieval layer is trusted), use the filter API to scope queries. For standard endpoints:&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="contents"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;PRE class="cm-content q9tKkq_readonly m-0"&gt;&lt;CODE&gt;&lt;SPAN class="ͼ11"&gt;results&lt;/SPAN&gt; &lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt; &lt;SPAN class="ͼ11"&gt;client&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;similarity_search(
    &lt;/SPAN&gt;&lt;SPAN class="ͼ11"&gt;index_name&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"main.shared.all_domains_index"&lt;/SPAN&gt;&lt;SPAN&gt;,
    &lt;/SPAN&gt;&lt;SPAN class="ͼ11"&gt;query_text&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"..."&lt;/SPAN&gt;&lt;SPAN&gt;,
    &lt;/SPAN&gt;&lt;SPAN class="ͼ11"&gt;filters&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"domain"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"sales"&lt;/SPAN&gt;&lt;SPAN&gt;}
)&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="1972" data-start="1915"&gt;For storage-optimized endpoints, the syntax is SQL-style:&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="contents"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="pe-11 pt-3"&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;PRE class="cm-content q9tKkq_readonly m-0"&gt;&lt;CODE&gt;&lt;SPAN&gt;filters="domain = 'sales'"&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="2379" data-start="2014"&gt;The important thing to understand is that filters here are applied post-retrieval, not pre-retrieval, on storage-optimized endpoints. Results are overfetched and then trimmed, so you may get fewer results than your &lt;CODE data-end="2242" data-start="2229"&gt;num_results&lt;/CODE&gt; parameter specifies if most candidates don't match the filter. This is especially relevant when domain data is sparse in a shared index.&lt;/P&gt;
&lt;P data-end="2420" data-start="2381"&gt;&lt;STRONG data-end="2420" data-start="2381"&gt;Embedding governance and lifecycle:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-end="2761" data-start="2422"&gt;For each domain, the source Delta table that backs the index is what you version and govern. A Delta Sync index automatically updates when the source table changes. Document updates flow through the Delta table, UC lineage tracks it, and you can use Delta table history for rollbacks. Treat the index as a derived asset, not a primary one.&lt;/P&gt;
&lt;P data-end="3015" data-start="2763"&gt;For embedding model governance, if you want to control which embedding model is used per domain (to avoid one domain's model choices contaminating another), register your embedding models in UC under the appropriate catalog and grant access per domain.&lt;/P&gt;
&lt;P data-is-only-node="" data-is-last-node="" data-end="3196" data-start="3017"&gt;The unified catalog/schema approach also gives you clean lifecycle management: retiring a domain means dropping its catalog, revoking endpoint access, and the cleanup is isolated.&lt;/P&gt;</description>
    <pubDate>Sun, 19 Jul 2026 09:02:17 GMT</pubDate>
    <dc:creator>iyashk-DB</dc:creator>
    <dc:date>2026-07-19T09:02:17Z</dc:date>
    <item>
      <title>Governance for vector search across multi domain unstructured data</title>
      <link>https://community.databricks.com/t5/generative-ai/governance-for-vector-search-across-multi-domain-unstructured/m-p/163202#M1951</link>
      <description>&lt;P class=""&gt;&lt;STRONG&gt;What is the recommended governance strategy for Databricks Vector Search in an enterprise Unified Data Platform (UDP) where structured and unstructured data from multiple business domains (Sales, Marketing.) is ingested into a common analytics platform?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;We are building a multi-domain GenAI/RAG application on Databricks, where data from different business domains is onboarded through a centralized UDP layer. We're evaluating the best approach for Vector Search governance.&lt;/P&gt;&lt;P&gt;Specifically:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Should we create separate Vector Search Indexes for each business domain, or use a single shared index with metadata filtering?&lt;/LI&gt;&lt;LI&gt;How can Unity Catalog permissions be enforced during vector retrieval to ensure users only access embeddings from authorized domains?&lt;/LI&gt;&lt;LI&gt;What is the recommended approach for embedding governance, index lifecycle management, and document updates when multiple domains share the same platform?&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Thu, 16 Jul 2026 15:23:09 GMT</pubDate>
      <guid>https://community.databricks.com/t5/generative-ai/governance-for-vector-search-across-multi-domain-unstructured/m-p/163202#M1951</guid>
      <dc:creator>Bitrip007</dc:creator>
      <dc:date>2026-07-16T15:23:09Z</dc:date>
    </item>
    <item>
      <title>Re: Governance for vector search across multi domain unstructured data</title>
      <link>https://community.databricks.com/t5/generative-ai/governance-for-vector-search-across-multi-domain-unstructured/m-p/163358#M1955</link>
      <description>&lt;P class="PDq2pG_selectionAnchorContainer" data-end="167" data-start="0"&gt;The short answer on index architecture: separate indexes per domain is usually the right call for an enterprise setup, not a single shared index with metadata filters.&lt;/P&gt;
&lt;P data-end="722" data-start="169"&gt;Here's why the "one index with filtering" approach is tempting but fragile. Vector Search doesn't support row or column level security. When you query a shared index, the filtering happens at the application layer, which means your RAG layer is responsible for enforcing access, not the platform. That's a governance gap that gets worse as the number of domains grows. If a developer forgets to pass the domain filter, or the filter is misconfigured, users can retrieve embeddings from domains they shouldn't touch. There's no platform-level safety net.&lt;/P&gt;
&lt;P data-end="1098" data-start="724"&gt;With separate indexes per domain, you get actual access isolation. Each index lives in a catalog/schema scoped to that domain, and Unity Catalog ACLs control who can even call the endpoint. A user without &lt;CODE data-end="937" data-start="929"&gt;SELECT&lt;/CODE&gt; on the schema can't query the index at all, independent of what the application does. That's enforcement you can audit, not application logic you have to trust.&lt;/P&gt;
&lt;P data-end="1144" data-start="1100"&gt;&lt;STRONG data-end="1144" data-start="1100"&gt;Index and schema layout for 20+ domains:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-end="1231" data-start="1146"&gt;Put each domain's indexes in its own schema, ideally under a domain-specific catalog:&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="contents"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="pe-11 pt-3"&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;PRE class="cm-content q9tKkq_readonly m-0"&gt;&lt;CODE&gt;&lt;SPAN&gt;catalog: sales_domain
    schema: embeddings
        table: customer_docs_index
        table: product_docs_index

catalog: marketing_domain
    schema: embeddings
        table: campaign_docs_index&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="1583" data-start="1445"&gt;Grant the domain team &lt;CODE data-end="1480" data-start="1467"&gt;USE CATALOG&lt;/CODE&gt;, &lt;CODE data-end="1494" data-start="1482"&gt;USE SCHEMA&lt;/CODE&gt;, and &lt;CODE data-end="1508" data-start="1500"&gt;SELECT&lt;/CODE&gt; on their catalog. Cross-domain access is an explicit grant, not a default.&lt;/P&gt;
&lt;P data-end="1758" data-start="1585"&gt;&lt;STRONG data-end="1618" data-start="1585"&gt;If you do need a shared index&lt;/STRONG&gt; (e.g., a cross-domain search experience where the retrieval layer is trusted), use the filter API to scope queries. For standard endpoints:&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="contents"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;PRE class="cm-content q9tKkq_readonly m-0"&gt;&lt;CODE&gt;&lt;SPAN class="ͼ11"&gt;results&lt;/SPAN&gt; &lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt; &lt;SPAN class="ͼ11"&gt;client&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;similarity_search(
    &lt;/SPAN&gt;&lt;SPAN class="ͼ11"&gt;index_name&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"main.shared.all_domains_index"&lt;/SPAN&gt;&lt;SPAN&gt;,
    &lt;/SPAN&gt;&lt;SPAN class="ͼ11"&gt;query_text&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"..."&lt;/SPAN&gt;&lt;SPAN&gt;,
    &lt;/SPAN&gt;&lt;SPAN class="ͼ11"&gt;filters&lt;/SPAN&gt;&lt;SPAN class="ͼv"&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"domain"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN class="ͼz"&gt;"sales"&lt;/SPAN&gt;&lt;SPAN&gt;}
)&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="1972" data-start="1915"&gt;For storage-optimized endpoints, the syntax is SQL-style:&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="contents"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback"&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="pe-11 pt-3"&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;PRE class="cm-content q9tKkq_readonly m-0"&gt;&lt;CODE&gt;&lt;SPAN&gt;filters="domain = 'sales'"&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="2379" data-start="2014"&gt;The important thing to understand is that filters here are applied post-retrieval, not pre-retrieval, on storage-optimized endpoints. Results are overfetched and then trimmed, so you may get fewer results than your &lt;CODE data-end="2242" data-start="2229"&gt;num_results&lt;/CODE&gt; parameter specifies if most candidates don't match the filter. This is especially relevant when domain data is sparse in a shared index.&lt;/P&gt;
&lt;P data-end="2420" data-start="2381"&gt;&lt;STRONG data-end="2420" data-start="2381"&gt;Embedding governance and lifecycle:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-end="2761" data-start="2422"&gt;For each domain, the source Delta table that backs the index is what you version and govern. A Delta Sync index automatically updates when the source table changes. Document updates flow through the Delta table, UC lineage tracks it, and you can use Delta table history for rollbacks. Treat the index as a derived asset, not a primary one.&lt;/P&gt;
&lt;P data-end="3015" data-start="2763"&gt;For embedding model governance, if you want to control which embedding model is used per domain (to avoid one domain's model choices contaminating another), register your embedding models in UC under the appropriate catalog and grant access per domain.&lt;/P&gt;
&lt;P data-is-only-node="" data-is-last-node="" data-end="3196" data-start="3017"&gt;The unified catalog/schema approach also gives you clean lifecycle management: retiring a domain means dropping its catalog, revoking endpoint access, and the cleanup is isolated.&lt;/P&gt;</description>
      <pubDate>Sun, 19 Jul 2026 09:02:17 GMT</pubDate>
      <guid>https://community.databricks.com/t5/generative-ai/governance-for-vector-search-across-multi-domain-unstructured/m-p/163358#M1955</guid>
      <dc:creator>iyashk-DB</dc:creator>
      <dc:date>2026-07-19T09:02:17Z</dc:date>
    </item>
  </channel>
</rss>

