Snowflake
Snowflake is a cloud data warehouse platform that enables data storage, processing, and analytics with scalable compute and storage resources.
Authentication Types
Snowflake supports 1 authentication method:
- OAuth - Create your own Snowflake Security Integration with PKCE. Every user connects with their Snowflake account.
- Pros: Secure, per-user tracking, production-ready
- Cons: Requires Snowflake admin access
General Settings
Before using the connector, you need to configure:
- Snowflake Instance URL - Your Snowflake instance URL (e.g.,
https://yourcompany.snowflakecomputing.com)
Setting up OAuth
-
Log in to your Snowflake account with admin privileges
-
Run the following SQL command to create a Security Integration:
CREATE SECURITY INTEGRATION webrix_oauth
TYPE = OAUTH
ENABLED = TRUE
OAUTH_CLIENT = CUSTOM
OAUTH_CLIENT_TYPE = PUBLIC
OAUTH_REDIRECT_URI = '<copy from Webrix platform>'
OAUTH_ISSUE_REFRESH_TOKENS = TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = 7776000
OAUTH_ENFORCE_PKCE = TRUE
;
- Get the Client ID by running:
DESCRIBE SECURITY INTEGRATION WEBRIX_OAUTH;
-
Copy the OAUTH_CLIENT_ID value from the describe output
-
In Webrix, paste the Client ID
You don't need a Client Secret because Snowflake uses PKCE (Proof Key for Code Exchange) for enhanced security. The Client ID combined with PKCE is sufficient for secure authentication.
-
Enter your Snowflake Instance URL in General Settings
-
Click Save Changes
Troubleshooting
Role Block Error
If your users encounter the following error when trying to connect:
"The role requested has been explicitly blocked for use with this application by an administrator. Please try logging in with a different role, or contact your administrator."
Cause: The user's default role may not have the necessary permissions to use the OAuth integration.
Solution:
Have the user (or a Snowflake admin) run the following SQL command to set an appropriate default role:
ALTER USER <user-name>
SET DEFAULT_ROLE = <role>;
Replace <user-name> with the actual username and <role> with the a role different than ACCOUNTADMIN, ORGADMIN, or SECURITYADMIN.