Skip to main content
ACCOUNTADMIN role (or a role with the global CREATE INTEGRATION privilege) is required to create the OAuth security integration. Note: ACCOUNTADMIN, SECURITYADMIN, ORGADMIN, and GLOBALORGADMIN are blocked from OAuth by default and cannot be used as the Snowflake Role.

Create an OAuth security integration

A custom OAuth security integration registers StackOne as an OAuth client in your Snowflake account and pre-authorizes the role your users will connect with.

1

Sign in to Snowflake

Sign in to your Snowflake account.

  • In the left sidebar, go to Projects > Workspaces.
  • Click + Add new to create a new SQL worksheet.
2

Create the security integration

Run the following SQL, replacing <integration_name> with a name of your choice (e.g., STACKONE_OAUTH) and <role_name> with the Snowflake role your users will authorize with.

  • OAUTH_REFRESH_TOKEN_VALIDITY is in seconds — 7776000 equals 90 days
  • The role in PRE_AUTHORIZED_ROLES_LIST must exactly match the Snowflake Role field.
  • Example: if your users connect with the SYSADMIN role, use PRE_AUTHORIZED_ROLES_LIST = ('SYSADMIN') and enter SYSADMIN as the Snowflake Role
  • To find a role: your current role is shown next to your username in the bottom-left corner of Snowsight (e.g., ACCOUNTADMIN). Note that ACCOUNTADMIN, SECURITYADMIN, ORGADMIN, and GLOBALORGADMIN are blocked for OAuth — pick a non-blocked role such as SYSADMIN

Retrieve your OAuth client credentials

Snowflake generates the client credentials when the integration is created; they are retrieved with a system function rather than shown in the UI.

1

Fetch the client credentials

In the same worksheet, run the following SQL, replacing <INTEGRATION_NAME> with your integration name in uppercase, wrapped in single quotes.

2

Copy your credentials

The result is a JSON object containing your client credentials. Store them securely for use later.

  • oauth_client_id is your OAuth Client ID
  • oauth_client_secret is your OAuth Client Secret

Find your account identifier

Your account identifier uniquely identifies your Snowflake account and routes API requests to it.

1

Open account details in Snowsight

Sign in to your Snowflake account and click your user profile (showing your username and role) in the bottom-left corner of the sidebar.

  • In the menu that opens, click your account entry (e.g., Account: AB12345) to expand the account submenu.
  • Select View account details.
  • Copy the Account Identifier shown in the dialog.
  • Format: orgname-accountname (e.g., myorg-account123)
  • Alternative — run SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME(); in any worksheet

Linking the Account from the Hub

1

Navigate to the Hub

Use one of the three Linking Account Methods to access the Hub.
2

Fill out the fields

Fill out the following fields using details from your provider:
  • Account Identifier
  • OAuth Client ID
  • OAuth Client Secret
  • Snowflake Role
3

Connect

  • Click Connect
  • If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider’s authorization flow.
  • Once authorization is successful, you will see a confirmation popup

If the account linking is successful, you will see the newly linked account in your Accounts page.