> ## Documentation Index
> Fetch the complete documentation index at: https://julius.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Filtered Schemas

> Limit which tables and columns Julius can see from a connection so the AI only uses the most relevant data.

Filtered schemas let you **control which parts of a database or warehouse are exposed to Julius**.
Instead of syncing every table and column from a connection, you can choose a smaller, safer subset that the AI will use in chats, dashboards, and notebooks.

This is especially helpful when:

* You have **sensitive tables** that should never be queried by AI.
* Your database has **many legacy or noisy tables** that would clutter results.
* You want users using this connector to start with a **curated analytics schema** instead of the full production database.

***

## How to Set Up a Filtered Schema

Follow these steps to control which tables and columns Julius uses from your data source:

<Steps>
  <Step title="Connect Your Data Source">
    First, set up your database or warehouse connection as you normally would. See the specific setup guide for your source (e.g., <a href="/data-connectors/postgres">Postgres</a>, <a href="/data-connectors/mysql">MySQL</a>, etc.) if you need help.
  </Step>

  <Step title="Go to the Filtered Schema Tab">
    In the connection settings, navigate to the <b>Filtered Schema</b> tab. This is available for each database or warehouse connector you've set up.
  </Step>

  <Step title="Select Tables and Columns to Expose">
    You'll see a list of tables and columns in your database. Use the checkboxes to select which ones Julius can access.<br /><br />
    <b>Notes:</b>

    <ul>
      <li>By default (with nothing selected), <b>ALL</b> tables and columns in the schema are accessible.</li>
      <li>If you check a table, only checked tables (and any checked columns in them) will be exposed to Julius.</li>
      <li>You can get as granular as you like: hide whole tables or only specific columns (e.g., sensitive fields) without affecting others.</li>
    </ul>
  </Step>
</Steps>

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/julius-d061c216/GDw_fYQeQAKRXXNQ/images/data-connectors/filtered-schemas/filtered_schema_light.png?fit=max&auto=format&n=GDw_fYQeQAKRXXNQ&q=85&s=950574971bf13fb3f67ae641189a460a" alt="Filtered schema configuration in Julius" title="Filtered schema configuration in Julius" style={{ width: "80%", margin: "0 auto" }} width="3196" height="2584" data-path="images/data-connectors/filtered-schemas/filtered_schema_light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/julius-d061c216/GDw_fYQeQAKRXXNQ/images/data-connectors/filtered-schemas/filtered_schema_dark.png?fit=max&auto=format&n=GDw_fYQeQAKRXXNQ&q=85&s=345be803fa774df6d8f5384a70527f5c" alt="Filtered schema configuration in Julius (dark mode)" title="Filtered schema configuration in Julius (dark mode)" style={{ width: "80%", margin: "0 auto" }} width="3160" height="2544" data-path="images/data-connectors/filtered-schemas/filtered_schema_dark.png" />
</Frame>

<Warning>
  **Important:**\
  Filtered Schemas apply to **all users** who access this connector, not just you. If you configure a filtered schema and share the data connector with your team, everyone using that connector will be limited to the tables and columns you select.

  This is especially helpful for:

  * Ensuring no one (even by accident) can query sensitive tables
  * Giving your teammates a simplified, curated view of the data
  * Maintaining consistent data access policies across your organization

  > To set different access levels for different users, create separate connectors for each permission set, each with its own filtered schema.
</Warning>
