Snowflake

Native integration with Snowflake allows for fast metadata extraction, warehouse management, and support for complex role-based access control models.

Connection Parameters

ParameterDescriptionRequiredExample
Account IdentifierSnowflake accountYesxy12345.us-east-1
UsernameSnowflake userYesREADONLY_USER
PasswordUser passwordYes********
WarehouseCompute warehouseYesCOMPUTE_WH
DatabaseDatabase nameYesPRODUCTION_DB
SchemaSchema nameOptionalPUBLIC
RoleUser roleOptionalREADONLY_ROLE

Required Permissions

We recommend creating a dedicated role for metadata extraction:

snowflake_permissions.sql
-- Create dedicated role
CREATE ROLE readonly_role;

-- Grant database and schema access
GRANT USAGE ON DATABASE production_db TO ROLE readonly_role;
GRANT USAGE ON SCHEMA production_db.public TO ROLE readonly_role;

-- Grant table access
GRANT SELECT ON ALL TABLES IN SCHEMA production_db.public TO ROLE readonly_role;
GRANT SELECT ON FUTURE TABLES IN SCHEMA production_db.public TO ROLE readonly_role;

-- Grant warehouse access
GRANT USAGE ON WAREHOUSE compute_wh TO ROLE readonly_role;

-- Assign role to user
GRANT ROLE readonly_role TO USER readonly_user;

Special Features

Multi-Database Support

Access multiple databases within the same Snowflake account seamlessly.

Time Travel Support

Queries historical table definitions to understand schema evolution.

Warehouse Management

Platform efficiently manages warehouse usage to minimize compute costs.

RBAC Integration

Full support for Snowflake's Role-Based Access Control model.

Common Issues

Warehouse suspended

Resume the warehouse manually or grant AUTO_RESUME privilege to the role.

Account identifier format

Use the format `account.region` (e.g., `xy12345.us-east-1`). Do not include `.snowflakecomputing.com` in the identifier.

Insufficient privileges

Ensure the user role has explicit `USAGE` on the Database/Schema and `SELECT` on the tables.

Role not active

Set the default role for the user: ALTER USER readonly_user SET DEFAULT_ROLE = readonly_role;