Skip to main content

Snowflake Destination

Prerequisites

  • A Snowflake account (any edition: Standard, Enterprise, Business Critical)
  • ACCOUNTADMIN or SECURITYADMIN role access to create users and grant privileges

Step 1: Create a Dedicated User and Role

Run the following SQL in a Snowflake worksheet as ACCOUNTADMIN:

-- Create a role for Landed
CREATE ROLE IF NOT EXISTS LANDED_ROLE;

-- Create a user for Landed
CREATE USER IF NOT EXISTS LANDED_USER
PASSWORD = '<strong-password>'
DEFAULT_WAREHOUSE = 'COMPUTE_WH'
DEFAULT_ROLE = 'LANDED_ROLE'
MUST_CHANGE_PASSWORD = FALSE;

-- Grant the role to the user
GRANT ROLE LANDED_ROLE TO USER LANDED_USER;

Step 2: Grant Required Privileges

-- Warehouse access (X-Small is sufficient for most workloads)
GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE LANDED_ROLE;

-- Database access (create the database first if it doesn't exist)
CREATE DATABASE IF NOT EXISTS LANDED;
GRANT USAGE ON DATABASE LANDED TO ROLE LANDED_ROLE;
GRANT CREATE SCHEMA ON DATABASE LANDED TO ROLE LANDED_ROLE;

-- Schema access
GRANT USAGE ON SCHEMA LANDED.PUBLIC TO ROLE LANDED_ROLE;
GRANT CREATE TABLE ON SCHEMA LANDED.PUBLIC TO ROLE LANDED_ROLE;

-- If you want Landed to use a specific schema other than PUBLIC:
-- GRANT USAGE ON SCHEMA LANDED.<your_schema> TO ROLE LANDED_ROLE;
-- GRANT CREATE TABLE ON SCHEMA LANDED.<your_schema> TO ROLE LANDED_ROLE;

Step 3: Find Your Account Identifier

Your Snowflake account identifier includes the region. Examples:

FormatExample
Organization-basedmyorg-account123
Legacy (with region)xy12345.us-east-1
Legacy (AWS us-west-2)xy12345 (no region suffix needed)

To find it:

  1. Log into Snowflake
  2. Click your name in the bottom-left corner
  3. Hover over your account to see the full identifier
  4. Or run: SELECT CURRENT_ACCOUNT(), CURRENT_REGION();

Do not include .snowflakecomputing.com in the account field.

Step 4: Configure in Landed

FieldValue
AccountYour Snowflake account identifier (e.g., xy12345.us-east-1)
UserLANDED_USER (or whatever you named it)
PasswordThe password you set in Step 1
WarehouseCOMPUTE_WH (or your preferred warehouse)
DatabaseLANDED (or your preferred database)
SchemaPUBLIC (or your preferred schema)

Step 5: Network Access

If your Snowflake account uses network policies, you must allow Landed's static egress IPs:

EnvironmentIPs
Production34.170.185.84, 35.192.90.94
Staging34.171.93.34

Add them to your network policy:

ALTER NETWORK POLICY my_policy SET
ALLOWED_IP_LIST = ('34.170.185.84', '35.192.90.94', ...existing IPs...);

Common Errors

ErrorCauseFix
Incorrect username or passwordWrong credentialsDouble-check user and password. Snowflake usernames are case-sensitive.
Warehouse does not exist or not authorizedMissing USAGE grantRun GRANT USAGE ON WAREHOUSE ... TO ROLE LANDED_ROLE;
Database does not exist or not authorizedMissing database grantVerify database exists and role has USAGE privilege
IP not allowedNetwork policy blockingAdd Landed's static IPs to your network policy
Account not foundWrong account identifierVerify the account identifier format. Try with and without region suffix.

Key-Pair Authentication (Optional)

For enhanced security, Snowflake supports key-pair authentication instead of passwords. Contact Landed support for setup instructions.

What Landed Creates

Landed creates tables in your specified database and schema with the naming pattern <CONNECTOR>__<STREAM> (e.g., STRIPE__CUSTOMERS). Snowflake uppercases all identifiers by default.