Skip to main content
(Applies to dbt v2.0 and later)

Connect Snowflake to Fusion Preview

Snowflake enforcing strong authentication

Starting August 31, 2026, password authentication will no longer be supported. Please update your environments to use key-pair or OAuth by that date to prevent service disruptions.

You can configure the Snowflake adapter by running dbt init in your CLI or manually providing the profiles.yml file with the fields configured for your authentication type. To check out which Snowflake functions are supported in Fusion in strict mode, refer to Snowflake function support.

The Snowflake adapter for Fusion supports the following authentication methods:

  • Password
  • Key pair
  • Single sign-on (SSO)
  • Password with MFA
note

Snowflake is deprecating single-access password login. Individual developers should use MFA or SSO instead of password authentication. Password-based login remains supported for service users (Snowflake user type: LEGACY_SERVICE).

Warehouse permissions

The Snowflake user or service account that dbt Fusion engine connects as must be able to run dbt workloads (queries, metadata, and typical materializations). Grant privileges through a Snowflake role assigned to that user.

Required Snowflake objects

Before connecting, these objects must exist:

ObjectPurpose
AccountYour Snowflake account identifier
UserService account or user for Fusion
RoleRole assigned to the user with required privileges
WarehouseVirtual warehouse for compute
DatabaseTarget database or databases for dbt models
SchemaTarget schema or schemas within the database

Core operations

The following are required permissions for fundamental dbt operations:

PermissionObjectPurpose
USAGEWarehouseExecute queries
USAGEDatabaseAccess the database
USAGESchemaAccess schemas
SELECTTables or viewsRead existing data and sources
CREATE TABLESchemaCreate models materialized as tables
CREATE VIEWSchemaCreate models materialized as views
INSERTTablesLoad data into tables
UPDATETablesIncremental model updates
DELETETablesIncremental models using delete and insert
TRUNCATETablesFull refresh of incremental models
DROPTables or viewsReplace existing objects

Metadata operations

The following are required permissions for dbt metadata operations:

PermissionObjectPurpose
USAGEINFORMATION_SCHEMAQuery table and column metadata
DESCRIBE TABLETablesGet schema information
SHOW OBJECTSSchemaList relations in schema
SHOW USER FUNCTIONSSchemaDiscover UDFs (if used)

Schema and database management

The following are conditional permissions for schema and database management:

PermissionObjectWhen required
CREATE SCHEMADatabaseFusion should auto-create schemas
CREATE DATABASEAccountFusion should auto-create databases

Advanced features

The following are optional permissions for advanced features:

PermissionObjectFeature
CREATE STAGESchemaFile staging for seeds or snapshots
CREATE FILE FORMATSchemaCustom file formats
CREATE SEQUENCESchemaSequences
EXECUTE TASKSchemaSnowflake tasks

For role examples and SQL grants in Snowflake, you can also refer to Snowflake permissions.

Snowflake configuration details

The information required for configuring the Snowflake adapter can be found conveniently in your Snowflake account menu:

  1. Click on your name from the Snowflake sidebar.
  2. Hover over the Account field.
  3. In the field with your account name, click View account details.
  4. Click Config file and select the appropriate Warehouse and Database.
Sample config file in Snowflake.Sample config file in Snowflake.

Configure Fusion

Executing dbt init in your CLI will prompt for the following fields:

  • Account: Snowflake account number
  • User: Your Snowflake username
  • Database: The database within your Snowflake account to connect to your project
  • Warehouse: The compute warehouse that will handle the tasks for your project
  • Schema: The development/staging/deployment schema for the project
  • Role (Optional): The role dbt should assume when connnecting to the warehouse

Alternatively, you can manually create the profiles.yml file and configure the fields. See examples in authentication section for formatting. If there is an existing profiles.yml file, you are given the option to retain the existing fields or overwrite them.

Next, select your authentication method. Follow the on-screen prompts to provide the required information.

Supported authentication types

Password authentication prompts for your Snowflake account password. This is becoming an increasingly less common option as organizations opt for more secure authentication.

Selecting Password with MFA redirects you to the Snowflake account login to provide your passkey or authenticator password.

Example password configuration

profiles.yml
default:
target: dev
outputs:
dev:
type: snowflake
threads: 16
account: ABC123
user: JANE.SMITH@YOURCOMPANY.COM
database: JAFFLE_SHOP
warehouse: TRANSFORM
schema: JANE_SMITH
password: THISISMYPASSWORD

Example password with MFA configuration

profiles.yml
default:
target: dev
outputs:
dev:
type: snowflake
threads: 16
authenticator: username_password_mfa
account: ABC123
user: JANE.SMITH@YOURCOMPANY.COM
database: JAFFLE_SHOP
warehouse: TRANFORM
schema: JANE_SMITH

More information

Find Snowflake-specific configuration information in the Snowflake adapter reference guide.

Was this page helpful?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

0
Loading