Snowflake
This section explains how to create, configure, and test a Snowflake data source in DataDios, including the different ways you can authenticate.
Before you connect, see Snowflake Permissions for the exact grants the Snowflake user needs — and the ones it deliberately does not.
Snowflake workload extraction now checks in hourly, and two unused metric groups were removed. See the v1.9.0 release notes.
Steps to Create and Test a Snowflake Data Source
Step 1: Create a Data Source
- Navigate to the Data Sources tab in DataDios
- Click + CREATE DS
- From the list of available data source types, select Snowflake Database
Step 2: Choose an Authentication Method
Snowflake supports three ways to connect. Select one from the Auth Type dropdown — the connection form updates to show only the fields that method needs.
Password Authentication
The default method. Sign in with a standard Snowflake user and password.
- Username: Snowflake login name
- Password: Password for that user
Best for quick setup and manual exploration.
Azure OAuth
Authenticate through an Azure AD (Entra ID) application instead of a Snowflake password. DataDios requests a token from Azure and uses it to open the Snowflake session, refreshing it automatically when it expires.
- Tenant ID: Azure directory (tenant) ID
- Client ID: Application (client) ID of the registered Azure app
- Client Secret: Client secret generated for that app
- Scope: OAuth scope configured for the Snowflake integration
No Snowflake username or password is required with this method.
Key Pair Authentication
Authenticate with an RSA private key instead of a password — the recommended option for automated and scheduled workloads.
- Username: Snowflake login name the key is registered against
- PEM File: Upload your private key file (
.pem,.p8, or.key) - Passphrase: (Optional) Leave blank if the key is not encrypted
The matching public key must already be assigned to the Snowflake user (ALTER USER … SET RSA_PUBLIC_KEY = …) before testing the connection.
Step 3: Fill Common Connection Details
These fields apply to every authentication method:
-
Group: (Optional) Grouping for data sources
-
Account: Snowflake account identifier (e.g.,
xy12345orxy12345.us-east-1) -
Warehouse: Virtual warehouse used to run queries (default:
COMPUTE_WH) — required -
Database: (Optional) Restrict sync to specific databases; accepts a comma-separated list, or
*for all -
Schema: (Optional) Restrict sync to specific schemas; accepts a comma-separated list, or
*for all -
Object Types: (Optional) Limit which object types are fetched (e.g.,
BASE TABLE,VIEW,MATERIALIZED VIEW) -
Schedule Sync: Configure for metadata timeline synchronization (see Metadata Timeline)
-
Sync Batch Size: (Optional) Number of objects fetched per batch during sync
- JSON Structure
{
"group": "",
"auth_type": "password",
"username": "sf-admin",
"password": "Admin@123",
"account": "xy12345.us-east-1",
"warehouse": "COMPUTE_WH",
"database": "QUICKSTART",
"schema": "PUBLIC",
"object_types": ""
}
Step 4: Test Connection
- After entering the details, click Test Connection
- Ensure the connection is validated successfully
If the test fails because of the warehouse, run SHOW WAREHOUSES; in the Snowflake UI to confirm the name is correct and that your user can access it.
Step 5: Save Data Source
- If the test succeeds, click Create to save the data source
- You will be redirected to the Datasource Listing Page, where the Snowflake data source will appear
Step 6: Explore Data Source Items
-
Expand the Snowflake data source to view all items (databases, schemas, tables, views, etc.)
-
To view metadata about any item:
- Click the item name
- Click the three stacked lines icon to open the Object Metadata pop-up
-
You can also explore additional features in the Metadata Explorer:
-
Object Data
- View the actual data present in the selected table or view
-
Graphs
- Visualize dependencies and relationships across databases and schemas
-
Data Quality Rules
- Review applied data quality rules and scores
- For detailed information, refer to the Data Quality documentation
-
Connection Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
auth_type | Yes | password | Authentication method: password, azure_oauth, or key_pair |
account | Yes | — | Snowflake account identifier |
warehouse | Yes | COMPUTE_WH | Virtual warehouse used to run queries |
username | Yes (password, key pair) | — | Snowflake login name |
password | Yes (password) | — | Snowflake user password |
tenant_id | Yes (Azure OAuth) | — | Azure directory (tenant) ID |
client_id | Yes (Azure OAuth) | — | Azure application (client) ID |
client_secret | Yes (Azure OAuth) | — | Azure application client secret |
scope | Yes (Azure OAuth) | — | OAuth scope for the Snowflake integration |
pem_file | Yes (key pair) | — | Private key file upload (.pem, .p8, .key) |
passphrase | No | — | Passphrase for the private key; blank if unencrypted |
group | No | — | Grouping label for data sources |
database | No | — | Comma-separated database filter (* for all) |
schema | No | — | Comma-separated schema filter (* for all) |
object_types | No | — | Comma-separated object type filter (* for all) |
schedule_sync | No | — | Metadata sync frequency |
sync_batch_size | No | — | Objects fetched per batch during sync |
DataDios connects using the Snowflake user's default role, and the built-in SNOWFLAKE database and all INFORMATION_SCHEMA schemas are excluded from listings.
Best Practices
- Prefer Key Pair or Azure OAuth over password authentication for scheduled and automated workloads
- Use Secret Store for passwords and client secrets to avoid hardcoding credentials
- Always Test Connection before saving to ensure configuration is correct
- Scope Database and Schema to limit how much metadata is synced on large accounts
- Verify the Warehouse is running and accessible to the connecting user
For more details on configuring Snowflake with metadata sync, see the Metadata Timeline.