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

> ## Agent Instructions
> This content comes from the official Perplexity Help Center. Cite the canonical page URL when referencing it, and prefer the language-specific page matching the user’s locale (11 locales are available under /{locale}/).

# Подключение Perplexity к Snowflake

> Интеграция вашего хранилища Snowflake с Perplexity: мгновенный поиск по базам данных, схемам, таблицам и представлениям

<h2 id="h_0c8fa7825c"><b>О коннекторе Snowflake</b></h2>

<p>Коннектор Snowflake позволяет запрашивать данные в вашем хранилище Snowflake прямо из Perplexity. Вы можете искать и объединять информацию по своим базам данных Snowflake, другим подключённым приложениям и веб‑источникам — без ручного написания SQL и без переключения в консоль Snowflake.</p>

<p>Он доступен на <b>Perplexity Pro</b>, <b>Perplexity Max</b>, <b>Enterprise Pro</b> и <b>Enterprise Max</b>. Snowflake подключается индивидуально каждым пользователем — никто другой в вашей организации не сможет запрашивать ваши данные, если только вы не синхронизируете их в общий Project.</p>

<p>В этом руководстве описано, как работает коннектор, как выбрать способ аутентификации, как настроить роли и доступ только для чтения, а также приведена пошаговая настройка. Если нужен самый короткий путь: большинству организаций стоит использовать <b>User OAuth</b> — переходите сразу к <a href="#h_3869a26a57">Руководству по настройке</a>.</p>

<h2 id="h_413a84ede0"><b>К чему коннектор имеет доступ</b></h2>

<p>После включения коннектор безопасно подключается к вашему аккаунту Snowflake и позволяет искать по базам, схемам, таблицам и представлениям, к которым у вас есть доступ. Когда ваши данные Snowflake меняются, коннектор автоматически отражает эти изменения при следующем запросе.</p>

<p><b>Поддерживаемые объекты данных:</b></p>

<ul>
  <li>
    <p>Таблицы</p>
  </li>

  <li>
    <p>Представления и материализованные представления</p>
  </li>

  <li>
    <p>Схемы</p>
  </li>

  <li>
    <p>Базы данных</p>
  </li>

  <li>
    <p>Структурированные данные (таблицы на базе CSV, JSON и Parquet)</p>
  </li>
</ul>

<p>Неструктурированные данные (изображения, аудио и видео, хранящиеся в стейджах Snowflake) не поддерживаются.</p>

<h2 id="h_f4e7220454"><b>Выбор способа аутентификации</b></h2>

<p>Аутентификация Snowflake имеет два независимых измерения: <b>кем</b> выполняются запросы (идентификатор) и <b>как</b> этот идентификатор подтверждается (учётные данные). Perplexity предоставляет два коннектора в каталоге, каждый под свою рекомендуемую комбинацию:</p>

<ul>
  <li>
    <p><b>Snowflake (User OAuth)</b> — каждый пользователь Perplexity входит со своей учётной записью Snowflake (<code>TYPE = PERSON</code>) через OAuth. <b>Рекомендуется для большинства организаций.</b></p>
  </li>

  <li>
    <p><b>Snowflake</b> — все пользователи Perplexity выполняют запросы через единый общий сервисный аккаунт (<code>TYPE = SERVICE</code>) с использованием пары ключей. Используйте, когда у конечных пользователей нет индивидуальных аккаунтов Snowflake.</p>
  </li>
</ul>

<h3 id="h_cf48856584">Рекомендуется: User OAuth</h3>

<p>С User OAuth каждый человек аутентифицируется собственными учётными данными, запросы выполняются с его штатными разрешениями Snowflake, и вы получаете чёткий журнал аудита по пользователям — без общего сервисного аккаунта и без необходимости заново воспроизводить ролевой контроль доступа (RBAC) внутри Perplexity. Это также соответствует направлению самой Snowflake: их управляемый MCP‑сервер <a href="https://docs.snowflake.com/en/sql-reference/sql/create-security-integration-oauth-snowflake" rel="nofollow noopener noreferrer" target="_blank">сегодня поддерживает только OAuth 2.0</a>.</p>

<p><b>Примечание:</b> в OAuth токен доступа привязан к одной основной роли при входе — <code>DEFAULT\_ROLE</code> пользователя. Чтобы пользователи могли обращаться ко всему, что им было выдано, настройте вторичные роли (см. <a href="#h_7bfeb78df3">Настройка ролей для User OAuth</a>).</p>

<h3 id="h_20223e5f12">Резервный вариант: сервисный аккаунт (пара ключей)</h3>

<p>Общий сервисный аккаунт (<code>TYPE = SERVICE</code> + пара ключей) подходит, когда:</p>

<ul>
  <li>
    <p>У конечных пользователей нет индивидуальных аккаунтов Snowflake (например, бизнес‑пользователи запрашивают данные через Perplexity, но не имеют прямого доступа к Snowflake).</p>
  </li>

  <li>
    <p>Вы хотите, чтобы все запросы Perplexity выполнялись под единой общей идентичностью для более простого аудита.</p>
  </li>

  <li>
    <p>Вы настраиваете внутреннюю или тестовую среду, где идентификация по пользователю не требуется.</p>
  </li>
</ul>

<p>Настройте сервисный аккаунт с выделенной, узко ограниченной ролью — см. <a href="#h_f2f1d899c8">Настройка роли сервисного аккаунта</a>.</p>

<p><b>О Programmatic Access Tokens (PAT):</b> Snowflake также поддерживает учётные данные PAT, и коннектор их принимает. Для новых установок PAT <b>не</b> рекомендуется — токены имеют короткий срок действия и жёстко привязаны к одной роли при создании; поэтому во всех примерах этого руководства мы используем пару ключей. Если вам всё же нужен PAT, установите <code>ROLE\_RESTRICTION</code> в вашу выделенную роль Perplexity при создании.</p>

<h2 id="h_ebd6383c07"><b>Настройка ролей и доступа</b></h2>

<h3 id="h_7bfeb78df3">Настройка ролей для User OAuth</h3>

<p>Сессия OAuth открывается с <code>DEFAULT\_ROLE</code> пользователя в качестве основной роли; переключение ролей внутри сессии не поддерживается, и Perplexity не показывает выбор роли. Поэтому что у каждого пользователя задано в <code>DEFAULT\_ROLE</code> и <code>DEFAULT\_SECONDARY\_ROLES</code>, ровно то и использует его сессия Perplexity.</p>

<p><b>Установите это один раз на уровне security integration:</b></p>

<pre>OAUTH\_USE\_SECONDARY\_ROLES = IMPLICIT</pre>

<p>По <a href="https://docs.snowflake.com/en/sql-reference/sql/create-security-integration-oauth-snowflake" rel="nofollow noopener noreferrer" target="_blank">умолчанию Snowflake использует NONE</a>, что означает, что сессии OAuth открываются только с активной основной ролью. Установка значения <code>IMPLICIT</code> говорит Snowflake также автоматически активировать <code>DEFAULT\_SECONDARY\_ROLES</code> каждого пользователя. Без этого пользователи видят только данные, доступные через <code>DEFAULT\_ROLE</code>, — обычно это не то, что нужно.</p>

<p><b>Затем обработайте один из двух случаев:</b></p>

<p><b>Вариант A — у пользователей уже настроены значения ролей по умолчанию.</b> Если у ваших пользователей <code>DEFAULT\_ROLE</code> и <code>DEFAULT\_SECONDARY\_ROLES</code> уже настроены как нужно, делать больше ничего не требуется. Настройки <code>IMPLICIT</code> достаточно — сессия Perplexity каждого пользователя использует его текущие значения.</p>

<p><b>Вариант B — у пользователей ещё не заданы значения ролей по умолчанию.</b> Дайте каждой сессии объединение всех выданных пользователю ролей, установив <code>DEFAULT\_ROLE</code> в <code>PUBLIC</code>, а <code>DEFAULT\_SECONDARY\_ROLES</code> — в <code>ALL</code>:</p>

<pre>ALTER USER \<username> SET DEFAULT\_ROLE = PUBLIC, DEFAULT\_SECONDARY\_ROLES = ('ALL');</pre>

<p><b>Примечание:</b> с августа 2024 года в Snowflake <code>DEFAULT\_SECONDARY\_ROLES = ('ALL')</code> — значение по умолчанию для вновь создаваемых пользователей, так что у многих организаций это уже установлено. Выполните <code>DESC USER \<username></code>, чтобы проверить перед изменением.</p>

<h3 id="h_f2f1d899c8">Настройка роли сервисного аккаунта</h3>

<p>Сервисный аккаунт — это единичный выделенный пользователь, работающий под одной конкретной ролью, обычно <code>PERPLEXITY\_ROLE</code>. Шаблон <code>PUBLIC</code> + <code>('ALL')</code>, используемый для OAuth, <b>не</b> применяется здесь. Вместо этого установите <code>DEFAULT\_ROLE</code> сервисного пользователя в вашу выделенную роль и выдайте этой роли только те привилегии, которые нужны Perplexity. Это следует <a href="https://docs.snowflake.com/en/user-guide/admin-user-management" rel="nofollow noopener noreferrer" target="_blank">рекомендациям Snowflake по сервисным аккаунтам</a>.</p>

<p>Полный SQL для создания такого пользователя приведён в <a href="#h_3869a26a57">Руководстве по настройке</a> ниже.</p>

<h3 id="h_46daf6b16a">(Опционально) ограничение ролей, доступных через OAuth</h3>

<p>Чтобы ограничить, в какие роли Snowflake пользователи могут аутентифицироваться через интеграцию Perplexity OAuth, задайте это на уровне security integration:</p>

<ul>
  <li>
    <p><code>PRE\_AUTHORIZED\_ROLES\_LIST</code> — список разрешённых ролей для этой интеграции.</p>
  </li>

  <li>
    <p><code>BLOCKED\_ROLES\_LIST</code> — список запрещённых ролей для этой интеграции.</p>
  </li>
</ul>

<pre>ALTER SECURITY INTEGRATION PERPLEXITY\_OAUTH<br />  SET PRE\_AUTHORIZED\_ROLES\_LIST = ('ANALYST\_ROLE', 'READ\_ONLY\_ROLE');</pre>

<p>Используйте это, чтобы полностью исключить чувствительные роли (например, <code>ACCOUNTADMIN</code>) из процесса OAuth.</p>

<h2 id="h_25a0019527"><b>Управление тем, что может делать Perplexity</b></h2>

<p>Коннектор выполняет SQL через набор инструментов (взятый из <a href="https://docs.merge.dev/merge-agent-handler/connectors/snowflake" rel="nofollow noopener noreferrer" target="_blank">коннектора Merge Snowflake</a>). Коннектор <b>Snowflake (User OAuth)</b> предоставляет детализированные именованные инструменты, включая специальный инструмент только для чтения (<code>execute\_sql\_readonly</code>), который принимает только <code>SELECT</code>, <code>WITH</code>, <code>SHOW</code>, <code>DESCRIBE</code>, <code>EXPLAIN</code>, <code>VALUES</code> и <code>LIST</code> и отклоняет DDL/DML и ввод из нескольких операторов. Сервисно‑аккаунтный коннектор <b>Snowflake</b> предоставляет общий инструмент <code>execute\_sql</code>, принимающий произвольный SQL, включая DDL и DML.</p>

<p><b>Авторитетный контроль — это Snowflake RBAC.</b> Каким бы инструментом ни воспользовалась система, запросы выполняются под ролью, разрешённой вашей конфигурацией, поэтому обеспечение режима только для чтения на уровне роли Snowflake — надёжный запасной механизм; и это единственная граница обеспечения на сервисно‑аккаунтном коннекторе.</p>

<p><b>Рекомендуемый шаблон — обеспечьте только чтение выделенной ролью.</b> Заведите роль вроде <code>PERPLEXITY\_READ\_ONLY</code>, которая выдаёт только <code>USAGE</code> и <code>SELECT</code> на базы данных, схемы и таблицы, к которым Perplexity должен обращаться, и <b>не</b> выдаёт <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code>, <code>CREATE</code>, <code>DROP</code>, <code>OWNERSHIP</code> или <code>MODIFY</code> на warehouse. Затем убедитесь, что пользователи аутентифицируются именно в эту роль:</p>

<ul>
  <li>
    <p>Установите её как <code>DEFAULT\_ROLE</code> пользователя, или</p>
  </li>

  <li>
    <p>Ограничьте интеграцию OAuth с помощью <code>PRE\_AUTHORIZED\_ROLES\_LIST</code> и/или исключите роли с правом на запись через <code>BLOCKED\_ROLES\_LIST</code> (см. <a href="#h_46daf6b16a">Ограничение ролей, доступных через OAuth</a>).</p>
  </li>
</ul>

<p>При такой конфигурации RBAC Snowflake отклоняет любую попытку записи со стороны Perplexity, независимо от того, какой инструмент был вызван.</p>

<p><b>Примечание:</b> в настройках коннектора есть панель <b>Tool permissions</b> со списком доступных инструментов. В коннекторе <b>Snowflake (User OAuth)</b> вы можете сузить набор доступных инструментов — для конфигурации только для чтения включите только инструменты чтения (например, <code>execute\_sql\_readonly</code>, <code>list\_\*</code>, <code>describe\_\*</code>, <code>get\_\*</code>), чтобы держать инструменты записи/DDL вне доступа. Рассматривайте это как эшелонированную защиту, а не авторитетную границу: Snowflake RBAC (см. выше) — это то, что надёжно обеспечивает доступ.</p>

<h2 id="h_402f8e5787"><b>Конфиденциальность и безопасность данных</b></h2>

<p>После подключения коннектор Snowflake может выполнять следующие действия от вашего имени:</p>

<ul>
  <li>
    <p>Выполнять SQL‑запросы к вашим данным Snowflake</p>
  </li>

  <li>
    <p>Обращаться к Cortex Search и Cortex Analyst</p>
  </li>

  <li>
    <p>Запускать пользовательские UDF и хранимые процедуры</p>
  </li>
</ul>

<p>Если вы отзываете доступ или удаляете роль в Snowflake, эти данные немедленно становятся недоступны из Perplexity. Если вы отключаете Snowflake в Perplexity, вы можете выбрать, сохранять или удалять кэшированные данные.</p>

<h3 id="h_a87844a636">Безопасность и контроль корпоративного уровня</h3>

<p>Для корпоративных организаций Perplexity предлагает сертификат SOC 2 Type II, сквозное шифрование, строгие меры конфиденциальности и детальные средства управления доступом пользователей. Ваши данные Snowflake никогда не используются для обучения ИИ.</p>

<p>Snowflake подключается индивидуально каждым пользователем — никто другой в вашей организации не сможет запрашивать ваши данные. Однако если вы синхронизируете данные в общий Project, любой, у кого есть доступ к этому Project, может выполнять по ним поиск.</p>

<p>Администраторы организации могут включить или отключить коннектор для всех пользователей на экране <a href="https://www.perplexity.ai/account/org/permissions" rel="nofollow noopener noreferrer" target="_blank">Permissions</a> в Organization Settings. Обеспечение режимов чтения/записи выполняется на уровне роли Snowflake (см. <a href="#h_25a0019527">Управление тем, что может делать Perplexity</a>).</p>

<h2 id="h_8504daf7ee"><b>Руководство по настройке</b></h2>

<p>Выберите путь, соответствующий вашему способу аутентификации:</p>

<ul>
  <li>
    <p><b>User OAuth (рекомендуется):</b> админ организации один раз настраивает приложение OAuth, затем пользователи входят индивидуально. Переходите сразу к <a href="#h_3869a26a57">Подключение Snowflake к Perplexity</a> — SQL в шагах 1–6 нужен только для сервисно‑аккаунтных установок.</p>
  </li>

  <li>
    <p><b>Сервисный аккаунт (пара ключей):</b> выполните SQL‑настройку в шагах 1–6, затем подключитесь на шаге 7.</p>
  </li>
</ul>

<h3 id="h_7179d70510">Предварительные требования</h3>

<ul>
  <li>
    <p>Роль <code>ACCOUNTADMIN</code> (или роль с привилегиями <code>CREATE USER</code> и <code>GRANT</code>)</p>
  </li>

  <li>
    <p>Установленный локально OpenSSL (предустановлен на macOS) — только для сервисно‑аккаунтных установок</p>
  </li>
</ul>

<h3 id="h_a2bf34bded">Шаг 1: сгенерируйте пару ключей (сервисный аккаунт)</h3>

<p>В терминале сгенерируйте закрытый ключ RSA:</p>

<pre>openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out snowflake\_computer\_key.p8 -nocrypt</pre>

<p>Затем сгенерируйте соответствующий открытый ключ:</p>

<pre>openssl rsa -in snowflake\_computer\_key.p8 -pubout -out snowflake\_computer\_key.pub</pre>

<h3 id="h_9d71789587">Шаг 2: создайте роль и warehouse</h3>

<pre>USE ROLE ACCOUNTADMIN;<br /><br />-- Create a dedicated role<br />CREATE ROLE IF NOT EXISTS PERPLEXITY\_ROLE<br />  COMMENT = 'Role for Perplexity service account';<br /><br />-- Create a warehouse (or use an existing one)<br />CREATE WAREHOUSE IF NOT EXISTS PERPLEXITY\_WAREHOUSE<br />  WAREHOUSE\_SIZE = 'XSMALL'<br />  AUTO\_SUSPEND = 60<br />  AUTO\_RESUME = TRUE<br />  COMMENT = 'Warehouse for Perplexity queries';<br /><br />-- Grant warehouse usage to the role<br />GRANT USAGE ON WAREHOUSE PERPLEXITY\_WAREHOUSE TO ROLE PERPLEXITY\_ROLE;</pre>

<h3 id="h_247b26ea99">Шаг 3: создайте пользователя сервисного аккаунта</h3>

<p>Выполните это под <code>ACCOUNTADMIN</code>. Замените значение <code>RSA\_PUBLIC\_KEY</code> содержимым вашего файла <code>snowflake\_computer\_key.pub</code> (без строк заголовка и завершения).</p>

<pre>USE ROLE ACCOUNTADMIN;<br /><br />CREATE USER PERPLEXITY\_USER<br />  TYPE = SERVICE<br />  DEFAULT\_ROLE = PERPLEXITY\_ROLE<br />  DEFAULT\_WAREHOUSE = PERPLEXITY\_WAREHOUSE<br />  COMMENT = 'Service account for Perplexity'<br />  RSA\_PUBLIC\_KEY = 'MIIBIjANBgkqhki...your\_public\_key\_here...IDAQAB';<br /><br />-- Grant the dedicated role to the service account<br />GRANT ROLE PERPLEXITY\_ROLE TO USER PERPLEXITY\_USER;</pre>

<p><b>Примечание:</b> <code>TYPE = SERVICE</code> помечает аккаунт как нечеловеческий — не задавайте пароль. <code>DEFAULT\_ROLE = PERPLEXITY\_ROLE</code> ограничивает его одной выделенной ролью только с нужными Perplexity привилегиями.</p>

<h3 id="h_706c1a111a">Шаг 4: выдайте доступ к вашим данным</h3>

<pre>-- Grant access to a specific database<br />GRANT USAGE ON DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;<br /><br />-- Grant access to all schemas in a database (current and future)<br />GRANT USAGE ON ALL SCHEMAS IN DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;<br />GRANT USAGE ON FUTURE SCHEMAS IN DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;<br /><br />-- Grant read access to all tables and views (current and future)<br />GRANT SELECT ON ALL TABLES IN DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;<br />GRANT SELECT ON FUTURE TABLES IN DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;<br />GRANT SELECT ON ALL VIEWS IN DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;<br />GRANT SELECT ON FUTURE VIEWS IN DATABASE MY\_DATABASE TO ROLE PERPLEXITY\_ROLE;</pre>

<p>Для более выборочного доступа см. <a href="https://docs.snowflake.com/en/sql-reference/sql/grant-privilege" rel="nofollow noopener noreferrer" target="_blank">документацию Snowflake GRANT</a>.</p>

<h3 id="h_72cacd4df6">Шаг 5: выдайте доступ к query history и access history</h3>

<p>Perplexity использует два представления в схеме <code>SNOWFLAKE.ACCOUNT\_USAGE</code> для построения карты данных с целью точной генерации запросов:</p>

<table>
  <tbody>
    <tr>
      <td>
        <p><b>Представление</b></p>
      </td>

      <td>
        <p><b>Назначение</b></p>
      </td>
    </tr>

    <tr>
      <td>
        <p><code>QUERY\_HISTORY</code></p>
      </td>

      <td>
        <p>Метаданные запросов, производительность и шаблоны использования</p>
      </td>
    </tr>

    <tr>
      <td>
        <p><code>ACCESS\_HISTORY</code></p>
      </td>

      <td>
        <p>Аудит на уровне объектов (только Enterprise Edition)</p>
      </td>
    </tr>
  </tbody>
</table>

<pre>USE ROLE ACCOUNTADMIN;<br />GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE PERPLEXITY\_ROLE;</pre>

<p><b>Примечание:</b> <code>ACCESS\_HISTORY</code> доступен только в Snowflake Enterprise Edition и выше; на Standard Edition Perplexity автоматически возвращается к <code>QUERY\_HISTORY</code>. Пропуск этого шага снижает точность запросов. О том, как Perplexity использует эти представления, см. <a href="/help-center/help-center/ru/articles/14017067-ponimanie-karty-dannyh">Понимание карты данных</a>.</p>

<h4 id="h_eb7d8277c1">Проверка доступа</h4>

<pre>USE ROLE ACCOUNTADMIN;<br />GRANT ROLE PERPLEXITY\_ROLE TO USER \<your\_username>;<br />USE ROLE PERPLEXITY\_ROLE;<br />USE WAREHOUSE PERPLEXITY\_WAREHOUSE;<br />SELECT \* FROM SNOWFLAKE.ACCOUNT\_USAGE.QUERY\_HISTORY LIMIT 5;<br />SELECT \* FROM SNOWFLAKE.ACCOUNT\_USAGE.ACCESS\_HISTORY LIMIT 5;</pre>

<h3 id="h_734ba70af3">Шаг 6: (опционально) разрешите IP‑адреса</h3>

<p>Если ваш аккаунт Snowflake ограничивает входящие соединения по IP, добавьте в белый список IP с <a href="https://help.ah.merge.dev/articles/8124222873-merge-tenant-ip-addresses?lang=en#us-tenant" rel="nofollow noopener noreferrer" target="_blank">этой страницы</a>:</p>

<pre>USE ROLE ACCOUNTADMIN;<br />CREATE NETWORK POLICY PERPLEXITY\_COMPUTER\_POLICY<br />  ALLOWED\_IP\_LIST = (...US IPs from the link above...);<br />ALTER USER PERPLEXITY\_USER SET NETWORK\_POLICY = PERPLEXITY\_COMPUTER\_POLICY;</pre>

<h3 id="h_3869a26a57">Шаг 7: подключите Snowflake к Perplexity</h3>

<h4 id="h_762aceb84a">Для User OAuth: сначала настройка админом</h4>

<p>Если ваша организация использует OAuth, админ организации один раз настраивает коннектор <b>Snowflake (User OAuth)</b>, прежде чем отдельные пользователи смогут аутентифицироваться. В <b>Organization Settings → Connectors → Snowflake (User OAuth)</b> админ видит панель из трёх шагов:</p>

<Steps>
  <Step>
    <p><b>Manage OAuth app</b> — зарегистрируйте Perplexity как OAuth‑клиент в вашем аккаунте Snowflake. Мастер проведёт вас через создание пользовательской <code>SECURITY INTEGRATION</code> Snowflake и вставку полученных Client ID и Client Secret обратно в Perplexity.</p>
  </Step>

  <Step>
    <p><b>Authenticate with Snowflake (User OAuth)</b> — админ один раз аутентифицируется, чтобы проверить сквозную работу интеграции.</p>
  </Step>

  <Step>
    <p><b>Generate a data map (optional)</b> — по желанию сгенерируйте карту данных для организации (см. <a href="/help-center/help-center/ru/articles/14017067-ponimanie-karty-dannyh">Понимание карты данных</a>) и добавьте дополнительный контекст для повышения точности.</p>
  </Step>
</Steps>

<p>На шаге 1 создайте security integration на стороне Snowflake. Выполните это под <code>ACCOUNTADMIN</code>:</p>

<pre>USE ROLE ACCOUNTADMIN;<br />CREATE SECURITY INTEGRATION PERPLEXITY\_OAUTH<br />  TYPE = OAUTH<br />  ENABLED = TRUE<br />  OAUTH\_CLIENT = CUSTOM<br />  OAUTH\_CLIENT\_TYPE = 'CONFIDENTIAL'<br />  OAUTH\_REDIRECT\_URI = '[https://ah.merge.dev/oauth/callback](https://ah.merge.dev/oauth/callback)'<br />  OAUTH\_ISSUE\_REFRESH\_TOKENS = TRUE<br />  OAUTH\_REFRESH\_TOKEN\_VALIDITY = 7776000<br />  OAUTH\_USE\_SECONDARY\_ROLES = IMPLICIT<br />  COMMENT = 'OAuth security integration for Perplexity';</pre>

<p>Получите Client ID и Client Secret, чтобы вставить обратно в Perplexity:</p>

<pre>SELECT SYSTEM\$SHOW\_OAUTH\_CLIENT\_SECRETS('PERPLEXITY\_OAUTH');</pre>

<p>После завершения настройки админом отдельные пользователи могут подключаться по шагам ниже.</p>

<h4 id="h_usrconn01">Подключение (все пользователи)</h4>

<p>Пользователи видят только тот метод аутентификации, который соответствует настроенному админом коннектору.</p>

<Steps>
  <Step>
    <p>Перейдите в <b>Connectors</b> в Settings и найдите коннектор <b>Snowflake</b> или <b>Snowflake (User OAuth)</b>.</p>
  </Step>

  <Step>
    <p>Нажмите <b>Enable → Add Connector</b>.</p>
  </Step>

  <Step>
    <p>Пройдите аутентификацию настроенным методом (см. ниже).</p>
  </Step>

  <Step>
    <p>Нажмите <b>Allow</b>, чтобы завершить настройку.</p>
  </Step>
</Steps>

<p><b>Аутентификация парой ключей (коннектор Snowflake).</b> Введите идентификатор вашего аккаунта Snowflake, имя пользователя и закрытый ключ (<code>snowflake\_computer\_key.p8</code>).</p>

<p><b>OAuth (коннектор Snowflake (User OAuth)).</b> Вас перенаправят на Snowflake для входа. Выбора роли нет — ваша сессия использует <code>DEFAULT\_ROLE</code> как основную роль, а <code>DEFAULT\_SECONDARY\_ROLES</code> активируются через <code>OAUTH\_USE\_SECONDARY\_ROLES = IMPLICIT</code>. Если значения по умолчанию для ролей уже настроены, действий не требуется.</p>

<p>Если в вашей сессии не хватает ожидаемых данных, попросите администратора Snowflake проверить ваши <code>DEFAULT\_ROLE</code> и <code>DEFAULT\_SECONDARY\_ROLES</code> (см. <a href="#h_7bfeb78df3">Настройка ролей для User OAuth</a>).</p>

<h2 id="h_05bb5e8747"><b>Использование ваших данных Snowflake</b></h2>

<p>После подключения ссылайтесь на данные Snowflake в задачах <a href="/help-center/help-center/ru/articles/13901210-computer-dlya-enterprise">Computer</a>. Упоминайте базы, схемы или таблицы — Perplexity будет обращаться к ним в рамках многошаговых сценариев, всё асинхронно в защищённой облачной песочнице. Попробуйте запросы вроде:</p>

<ul>
  <li>
    <p>«Обобщи тенденции выручки из таблицы продаж за Q4 и подчеркни ключевые метрики»</p>
  </li>

  <li>
    <p>«Найди все записи клиентов, обновлённые за последние 30 дней»</p>
  </li>

  <li>
    <p>«Какие продукты показали лучшую динамику по данным аналитической схемы?»</p>
  </li>

  <li>
    <p>«Сравни данные пайплайна за этот квартал с показателями предыдущего»</p>
  </li>
</ul>

<h2 id="h_c0fb703098"><b>Устранение неполадок</b></h2>

<h3 id="h_2840ddf954">Snowflake не включён для вашей организации</h3>

<p>Если вы в организации Enterprise и не можете включить коннектор, возможно, администратор его отключил. Обратитесь к администратору организации или в поддержку Perplexity.</p>

<h3 id="h_09afd7a7fe">Проблемы подключения и аутентификации</h3>

<ul>
  <li>
    <p>Убедитесь, что IP‑адреса Perplexity разрешены в сетевой политике Snowflake.</p>
  </li>

  <li>
    <p>Убедитесь, что роль имеет привилегии <code>USAGE</code> на нужных warehouses, базах и схемах.</p>
  </li>

  <li>
    <p>Попросите пользователей переподключить коннектор после любых изменений политик.</p>
  </li>
</ul>

<h4 id="h_a9c7f15779">Ошибка «Invalid private key»</h4>

<p>Убедитесь, что вы вставляете закрытый ключ (<code>snowflake\_computer\_key.p8</code>), а не открытый. Файл должен начинаться с <code>-----BEGIN PRIVATE KEY-----</code>.</p>

<h4 id="h_d1c7afcb9a">Аутентификация отклонена текущей политикой аутентификации</h4>

<p>Выполните <code>SHOW AUTHENTICATION POLICIES</code> под <code>ACCOUNTADMIN</code> и убедитесь, что <code>PERPLEXITY\_USER</code> покрыт политикой, включающей <code>KEYPAIR</code>. При необходимости:</p>

<pre>CREATE AUTHENTICATION POLICY PERPLEXITY\_AUTH\_POLICY<br />  AUTHENTICATION\_METHODS = ('KEYPAIR')<br />  CLIENT\_TYPES = ('DRIVERS');<br />ALTER USER PERPLEXITY\_USER SET AUTHENTICATION POLICY PERPLEXITY\_AUTH\_POLICY;</pre>

<h4 id="h_e30f28057c">OAuth: пользователь видит ограниченный набор данных после подключения</h4>

<p>Сессия OAuth использует <code>DEFAULT\_ROLE</code> пользователя как основную роль, а вторичные роли активируются через <code>OAUTH\_USE\_SECONDARY\_ROLES = IMPLICIT</code>. Если пользователю недоступно ожидаемое:</p>

<ul>
  <li>
    <p>Убедитесь, что в security integration задано <code>OAUTH\_USE\_SECONDARY\_ROLES = IMPLICIT</code>.</p>
  </li>

  <li>
    <p>Выполните <code>DESC USER \<username></code> и проверьте <code>DEFAULT\_ROLE</code> и <code>DEFAULT\_SECONDARY\_ROLES</code> — сессия использует ровно то, что там настроено.</p>
  </li>

  <li>
    <p>Если у пользователя нет индивидуальной конфигурации ролей и вы хотите, чтобы он получал доступ ко всему, что ему выдано, установите <code>DEFAULT\_ROLE = PUBLIC</code> и <code>DEFAULT\_SECONDARY\_ROLES = ('ALL')</code>.</p>
  </li>

  <li>
    <p>Попросите пользователя отключить и заново подключить коннектор, чтобы получить свежий токен после изменения любых из этих настроек.</p>
  </li>
</ul>

<h4 id="h_da9c991cd6">Представление ACCESS\_HISTORY возвращает ошибку</h4>

<p>Убедитесь, что ваш аккаунт Snowflake — Enterprise Edition или выше.</p>

<h4 id="h_449413017e">Недостаточно привилегий на представления ACCOUNT\_USAGE</h4>

<p>Убедитесь, что <code>GRANT IMPORTED PRIVILEGES</code> был выполнен под <code>ACCOUNTADMIN</code> и что <code>PERPLEXITY\_ROLE</code> выдан пользователю.</p>

<h4 id="h_f23e5d1e8f">Аутентификация парой ключей не проходит</h4>

<p>Повторно выполните <code>DESC USER PERPLEXITY\_USER</code>, чтобы убедиться, что отпечаток открытого ключа заполнен.</p>

<p>Если проблемы сохраняются после обновления этих настроек, обратитесь в поддержку Perplexity.</p>
