DOCUMENTATION
/
Get started
Guides
Developer
Reference
Release notes
Tutorials
Status
  1. Overview
    • Snowflake Horizon Catalog
    • Applications and tools for connecting to Snowflake
    • Virtual warehouses
    • Databases, Tables, & Views
    • Data types
      • Data Integration
        1. Snowflake Openflow
        2. Apache Iceberg™
          1. Apache Iceberg™ Tables
          2. Snowflake Open Catalog
      • Data engineering
        1. Data loading
        2. Dynamic Tables
        3. Streams and Tasks
        4. dbt Projects on Snowflake
        5. Data Unloading
      • Storage Lifecycle Policies
      • Migrations
      • Queries
      • Listings
      • Collaboration
      • Snowflake AI & ML
      • Alerts & Notifications
      • Security
          1. Authentication
          2. Authentication policies
            • Multi-factor authentication (MFA)
            • Federated authentication and SSO
            • Key-pair authentication and rotation
            • Programmatic access tokens
              • OAuth
                  1. Snowflake OAuth
                      1. OAuth for local applications
                        • Partner applications
                          • Custom client integration
                            • Managing user consent
                              • Single-use refresh tokens
                            • External OAuth
                        • Workload identity federation
                          • API authentication and secrets
                            • Network security
                            • Malicious IP protection
                              • Network policies
                                • Network rules
                                  • Private connectivity
                                  • Inbound private connectivity
                                  • Outbound private connectivity
                                  • Administration and authorization
                                  • Trust Center
                                  • Sessions and session policies
                                  • SCIM support
                                  • Access control
                                  • Encryption
                              • Data Governance
                              • Privacy
                              • Organizations & Accounts
                              • Business continuity & data recovery
                              • Performance optimization
                              • Cost & Billing
                              GuidesSecurityOAuthSnowflake OAuthManaging user consent

                              Managing user consent for OAuth¶

                              This topic describes how to manage delegated authorizations for OAuth, that is, user consent given to one or more clients associated with Snowflake integrations for a specified role.

                              Adding delegated authorizations¶

                              Adding a delegated authorization to a user pre-authorizes consent to initiate a session using a specified role for a particular integration. Without the delegated authorization, the user must authorize consent for the role after authentication. Note that a delegated authorization only bypasses the authorization step for a given role; a user must always authenticate to request an authorization code.

                              The ability to add delegated authorizations is limited to custom clients. For public clients (that is, Tableau Cloud or Desktop), Snowflake always displays the confirmation dialog for a given role.

                              Add user consent for a role using ALTER USER with the ADD DELEGATED AUTHORIZATION keywords:

                              ALTER USER <username> ADD DELEGATED AUTHORIZATION
                                  OF ROLE <role_name>
                                  TO SECURITY INTEGRATION <integration_name>;
                              
                              Copy

                              Where:

                              username

                              Specifies the user whose consent you are adding.

                              role_name

                              Specifies the role associated with the access token.

                              integration_name

                              Specifies the integration associated with the access tokens for a specific client.

                              Note

                              Only security administrators (that is, users with the SECURITYADMIN role) or higher can execute this SQL command.

                              For example, add user consent for the CUSTOM1 role to user JANE.SMITH for the MYINT integration:

                              ALTER USER jane.smith ADD DELEGATED AUTHORIZATION
                                  OF ROLE custom1
                                  TO SECURITY INTEGRATION myint;
                              
                              Copy

                              Viewing delegated authorizations¶

                              List the active delegated authorizations for which you have access privileges, using SHOW DELEGATED AUTHORIZATIONS:

                              SHOW DELEGATED AUTHORIZATIONS;
                              
                              +-------------------------------+-----------+-----------+-------------------+--------------------+
                              | created_on                    | user_name | role_name | integration_name  | integration_status |
                              +-------------------------------+-----------+-----------+-------------------+--------------------+
                              | 2018-11-27 07:43:10.914 -0800 | JSMITH    | PUBLIC    | MY_OAUTH_INT      | ENABLED            |
                              +-------------------------------+-----------+-----------+-------------------+--------------------+
                              
                              Copy

                              List the active delegated authorizations for a specified user. Users can list their own delegated authorizations; otherwise, this command variant requires the OWNERSHIP privilege on the user.

                              SHOW DELEGATED AUTHORIZATIONS
                                  BY USER <username>;
                              
                              Copy

                              List the active delegated authorizations for a specified integration. This command variant requires the OWNERSHIP privilege on the integration (that is, the ACCOUNTADMIN role):

                              SHOW DELEGATED AUTHORIZATIONS
                                  TO SECURITY INTEGRATION <integration_name>;
                              
                              Copy

                              Revoking delegated authorizations¶

                              A user can revoke consent from a specified integration. This has the effect of revoking any access token associated with the integration.

                              To revoke user consent for a given integration, execute the ALTER USER … REMOVE DELEGATED AUTHORIZATIONS command.

                              Note

                              Only security administrators (that is, users with the SECURITYADMIN role) or higher can execute this SQL command.

                              ALTER USER <username>
                                REMOVE DELEGATED AUTHORIZATIONS
                                FROM SECURITY INTEGRATION <integration_name>
                              
                              Copy

                              To revoke user consent associated with a specific role, include the OF ROLE role_name parameter in the statement:

                              ALTER USER <username>
                                REMOVE DELEGATED AUTHORIZATION OF ROLE <role_name>
                                FROM SECURITY INTEGRATION <integration_name>
                              
                              Copy

                              Where:

                              username

                              Specifies the user whose consent you are revoking.

                              role_name

                              Specifies the role associated with the access token.

                              integration_name

                              Specifies the integration associated with the access tokens for a specific client.

                              For example, remove user consent for the CUSTOM1 role from user JANE.SMITH for the MYINT integration:

                              ALTER USER jane.smith
                                REMOVE DELEGATED AUTHORIZATION OF ROLE custom1
                                FROM SECURITY INTEGRATION myint;
                              
                              Copy

                              Was this page helpful?

                              Visit Snowflake
                              Join the conversation
                              Develop with Snowflake
                              Share your feedback
                              Read the latest on our blog
                              Get your own certification
                              Privacy NoticeSite TermsCookies Settings© 2025 Snowflake, Inc. All Rights Reserved.
                              1. Adding delegated authorizations
                              2. Viewing delegated authorizations
                              3. Revoking delegated authorizations
                              Language: English
                              • English
                              • Français
                              • Deutsch
                              • 日本語
                              • 한국어
                              • Português