Skip to main content

Snowflake Database Source

Written by Emma Poo

In order to setup Snowflake as a data source, you need admin access to Snowflake to create databases and users.

Setting up Snowflake Database and user with key

  1. Create a database in Snowflake (or use an existing one) to store the data you want to share with Monda.

  2. Create a dedicated Snowflake user and role to act as a service account for Monda:

    • Grant the role read-only access (e.g., USAGE, SELECT) to the relevant database, schema, and tables or views

    • Assign the role to the user

    • Generate a key pair (public or private) for authentication

      Important: Password-based authentication (without MFA) will soon be deprecated by Snowflake. For secure programmatic access, use key-pair authentication instead. Further read: Snowflake: Key Pair Authentication Documentation.

  3. A typical generated key will look something like this:

    -----BEGIN PUBLIC KEY-----
    MIIBIj...
    -----END PUBLIC KEY-----

  4. Assign the public key to the user in Snowflake.

    ALTER USER NAME_OF_USER_YOU_CREATED SET RSA_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ...
    inj9GK9Q...
    ...
    -----END PUBLIC KEY-----';

Connect the database to Monda

  1. In your Provider Portal, go to Onboard > Sources > Add Connection.

  2. Select Snowflake Database from the dropdown menu.

    • Admins must provide the following information:

      • User: the Snowflake user created for the connection

      • Private Key: the user’s private key for authentication (the private key of the pair you created to connect to Snowflake)

      • Account Identifier: found via the Snowflake UI: View Account Details, or run in Snowflake: SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();

      • Warehouse: the warehouse to be used for the connection

      • Database: the name of the database

      • Schema: the schema within the database

      • Role: the role the user will assume for access

  3. Click Create. After the connection is established, you can test it via the Test Connection button.

Did this answer your question?