Подключение Snowflake
Подключения и учетные данные dbt наследуют разрешения настроенных учетных записей. Вы можете настраивать роли и связанные с ними разрешения в Snowflake в соответствии с требованиями вашей компании и более точно управлять доступом к объектам базы данных в вашей учетной записи.
Обратитесь к Разрешениям Snowflake для получения дополнительной информации о настройке ролей в Snowflake.
Следующие поля обязательны при создании подключения Snowflake
| Loading table... |
Методы аутентификации
В этом разделе описываются различные методы аутентификации для подключения dbt к Snowflake. Учетные данные для сред развертывания (Production, Staging, General) настраиваются глобально в разделе Connections в Account settings. Отдельные пользователи настраивают свои учетные данные для разработки в разделе Credentials своего профиля пользователя.
Имя пользователя и пароль с MFA
Начиная с ноября 2025 года Snowflake начнет поэтапно отключать однофакторную аутентификацию по паролю, и будет принудительно включена многофакторная аутентификация (MFA).
MFA будет обязательной для всей аутентификации типа Username / Password.
Чтобы продолжить использование аутентификации по ключевой паре, пользователям необходимо обновить все среды развертывания, которые в настоящее время используют Username / Password, до ноября 2025 года.
Для получения дополнительной информации см. публикацию в блоге Snowflake.
MFA в Snowflake доступна для всех типов планов.
Доступно в: средах разработки
Метод аутентификации Username / Password — это самый простой способ аутентифицировать
учетные данные разработки в dbt-проекте. Достаточно ввести имя пользователя Snowflake
(а именно login_name) и соответствующий password этого пользователя Snowflake,
чтобы аутентифицировать dbt для выполнения запросов к Snowflake от имени пользователя Snowflake.
Аутентификация Username / Password не поддерживается для учетных данных сред развертывания, так как требуется MFA. В средах развертывания вместо этого используйте аутентификацию по keypair.
Примечание: Поле Schema* в разделе Developer Credentials является обязательным.
Предварительные требования:
- Среда разработки в проекте dbt
- Приложение аутентификации Duo
- Административный доступ к Snowflake (если настройки MFA еще не были применены к аккаунту)
- Администраторский (write) доступ к средам dbt
MFA требуется Snowflake для всех входов с использованием Username / Password. Поддержка MFA в Snowflake реализована с помощью сервиса Duo Security.
-
В dbt задайте следующий extended attribute в среде разработки на странице General settings, в разделе Extended attributes:
authenticator: username_password_mfa -
Чтобы уменьшить количество запросов к пользователю при подключении к Snowflake с MFA, включите кэширование токенов в Snowflake.
-
При необходимости, если пользователи пропускают запросы и их учетные записи Snowflake блокируются, вы можете предотвратить автоматические повторные попытки, добавив следующее в тот же раздел Расширенные атрибуты:
connect_retries: 0
Ключевая пара
Доступно в: Development environments, Deployment environments
Метод аутентификации Keypair использует аутентификацию по паре ключей Snowflake для аутентификации учетных данных Development или Deployment в проекте dbt.
-
После генерации зашифрованной пары ключей обязательно задайте
rsa_public_keyдля пользователя Snowflake, под которым будет выполняться аутентификация в dbt:alter user jsmith set rsa_public_key='MIIBIjANBgkqh...'; -
Наконец, задайте поля Private Key и Private Key Passphrase на странице Credentials, чтобы завершить настройку аутентификации dbt в Snowflake с использованием ключевой пары.
- Примечание: Незашифрованные приватные ключи допускаются. Используйте passphrase только при необходимости. dbt может указывать
private_keyнапрямую как строку вместоprivate_key_path. Эта строкаprivate_keyможет быть либо в формате DER, закодированном в Base64 (представляющем байты ключа), либо в виде обычного текстового PEM‑формата. Подробнее о том, как Snowflake генерирует ключи, см. в документации Snowflake. - Указание приватного ключа с помощью переменной окружения (например,
{{ env_var('DBT_PRIVATE_KEY') }}) не поддерживается.
- Примечание: Незашифрованные приватные ключи допускаются. Используйте passphrase только при необходимости. dbt может указывать
-
Чтобы успешно заполнить поле Private Key, необходимо включить закомментированные строки. Если вы получаете ошибку
Could not deserialize key dataилиJWT token, обратитесь к разделу Устранение неполадок для получения дополнительной информации.
Пример:
-----BEGIN ENCRYPTED PRIVATE KEY-----
< encrypted private key contents here - line 1 >
< encrypted private key contents here - line 2 >
< ... >
-----END ENCRYPTED PRIVATE KEY-----
Snowflake OAuth
Доступно в: средах разработки, только тарифы уровня Enterprise
Метод аутентификации OAuth позволяет dbt выполнять запросы для разработки от имени пользователя Snowflake без необходимости настраивать пароль Snowflake в dbt.
Дополнительные сведения о настройке подключения Snowflake OAuth в dbt см. в документации по настройке Snowflake OAuth.
Конфигурация
Чтобы узнать, как оптимизировать производительность с помощью конфигураций, специфичных для конкретной платформы данных, в dbt, см. Snowflake-specific configuration.
URL-адрес пользовательского домена
Чтобы подключиться к Snowflake через пользовательский домен (vanity URL) вместо локатора учетной записи, используйте расширенные атрибуты для настройки параметра host с пользовательским доменом:
host: https://custom_domain_to_snowflake.com
Эта конфигурация может конфликтовать с Snowflake OAuth при использовании с PrivateLink. Если пользователи не могут достичь серверов аутентификации Snowflake с точки зрения сети, пожалуйста, свяжитесь с поддержкой dbt, чтобы найти обходной путь с этой архитектурой.
Устранение неполадок
Если вы получаете ошибку Could not deserialize key data или JWT token, обратитесь к следующим причинам и решениям:



