Skip to main content

Connecting to Snowflake

Promethium integrates with Snowflake to enable metadata discovery and distributed querying. Once connected, Promethium will crawl Snowflake schemas, tables, and columns, and make them available for query and exploration. Data can also be materialized to Snowflake if required.

This guide walks you through the steps to securely connect your Snowflake account to Promethium using read-only access.

Prerequisites

To connect Snowflake to Promethium, you’ll need the following:

  • Account Name Account name associated with your Snowflake account (e.g., xyz12345.us-east-1)
  • Snowflake Role Role specifying the default access control role to use in the session
  • Database Name of database you want to make available
  • Warehouse Name of warehouse to execute queries (required for metadata crawling and query execution)
  • Database Name Name of database that specifies the default database to use once connected

Authentication

Two forms of authentication are supported;

  1. Local user: This method is not recommended by Snowflake and is present for legacy purposes.
  2. Key Pair: supports a private key with an optional Passphrase

💡 We recommend creating a dedicated Snowflake user for Promethium with limited read-only privileges.

The minimum permissions required are

-- Grant usage and monitor on the database
GRANT USAGE ON DATABASE your_database TO ROLE promethium_role;
GRANT MONITOR ON DATABASE your_database TO ROLE promethium_role;
-- Grant usage on the schema(s)
GRANT USAGE ON SCHEMA your_database.your_schema TO ROLE promethium_role;
-- Grant read access to all existing tables
GRANT SELECT ON ALL TABLES IN SCHEMA your_database.your_schema TO ROLE promethium_role;
-- Optional: Automatically include new tables in the future
GRANT SELECT ON FUTURE TABLES IN SCHEMA your_database.your_schema TO ROLE promethium_role;