Verwalten der Benutzerzustimmung für OAuth¶
Unter diesem Thema wird beschrieben, wie delegierte Berechtigungen für OAuth verwaltet werden, d. h. die Zustimmung, die ein Benutzer einem oder mehreren Clients, die mit Snowflake-Integrationen verbunden sind, für eine bestimmte Rolle erteilt.
Unter diesem Thema:
Hinzufügen von delegierten Autorisierungen¶
Durch das Hinzufügen einer delegierten Berechtigung zu einem Benutzer wird die Zustimmung zum Initiieren einer Sitzung unter Verwendung einer angegebenen Rolle für eine bestimmte Integration vorautorisiert. Ohne die delegierte Autorisierung muss der Benutzer nach der Authentifizierung die Zustimmung für die Rolle erteilen. Beachten Sie, dass mit einer delegierten Autorisierung nur der Autorisierungsschritt für eine bestimmte Rolle umgangen wird. Ein Benutzer muss sich immer authentifizieren, um einen Autorisierungscode anzufordern.
Die Möglichkeit, delegierte Berechtigungen hinzuzufügen, ist auf benutzerdefinierte Clients beschränkt. Für öffentliche Clients (d. h. Tableau Server oder Desktop) zeigt Snowflake immer den Bestätigungsdialog einer bestimmten Rolle an.
Fügen Sie die Benutzerzustimmung für eine Rolle hinzu, indem Sie ALTER USER mit den Schlüsselwörtern ADD DELEGATED AUTHORIZATION verwenden:
ALTER USER <username> ADD DELEGATED AUTHORIZATION
OF ROLE <role_name>
TO SECURITY INTEGRATION <integration_name>;
Wobei:
username
Gibt den Benutzer an, dessen Zustimmung Sie hinzufügen.
role_name
Gibt die dem Zugriffstoken zugeordnete Rolle an.
integration_name
Gibt die Integration an, die den Zugriffstoken für einen bestimmten Client zugeordnet ist.
Bemerkung
Nur Sicherheitsadministratoren (d. h. Benutzer mit der Rolle SECURITYADMIN oder höher) können diesen SQL-Befehl ausführen.
Fügen Sie dem Benutzer JANE.SMITH für die Integration MYINT beispielsweise die Benutzerzustimmung für die Rolle CUSTOM1 hinzu:
ALTER USER jane.smith ADD DELEGATED AUTHORIZATION
OF ROLE custom1
TO SECURITY INTEGRATION myint;
Anzeigen von delegierten Autorisierungen¶
Listen Sie mit SHOW DELEGATED AUTHORIZATIONS die aktiven delegierten Berechtigungen auf, für die Sie Zugriffsberechtigungen haben:
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 |
+-------------------------------+-----------+-----------+-------------------+--------------------+
Listen Sie die aktiven delegierten Berechtigungen für einen angegebenen Benutzer auf. Benutzer können ihre eigenen delegierten Berechtigungen auflisten. Andernfalls erfordert diese Befehlsvariante die Berechtigung OWNERSHIP für den Benutzer.
SHOW DELEGATED AUTHORIZATIONS
BY USER <username>;
Listen Sie die aktiven delegierten Berechtigungen für eine angegebene Integration auf. Diese Befehlsvariante erfordert die Berechtigung OWNERSHIP für die Integration (d. h. die Rolle ACCOUNTADMIN):
SHOW DELEGATED AUTHORIZATIONS
TO SECURITY INTEGRATION <integration_name>;
Widerrufen von delegierten Autorisierungen¶
Ein Benutzer kann die Zustimmung zu einer bestimmten Integration widerrufen. Dies hat zur Folge, dass alle mit der Integration verbundenen Zugriffstoken gesperrt werden.
Führen Sie, um die Benutzerzustimmung für eine bestimmte Integration zu widerrufen, den Befehl ALTER USER … REMOVE DELEGATED AUTHORIZATIONS aus.
Bemerkung
Nur Sicherheitsadministratoren (d. h. Benutzer mit der Rolle SECURITYADMIN oder höher) können diesen SQL-Befehl ausführen.
ALTER USER <username>
REMOVE DELEGATED AUTHORIZATIONS
FROM SECURITY INTEGRATION <integration_name>
Um die einer bestimmten Rolle zugeordnete Benutzerzustimmung zu widerrufen, fügen Sie den Parameter OF ROLE role_name
in die Anweisung ein:
ALTER USER <username>
REMOVE DELEGATED AUTHORIZATION OF ROLE <role_name>
FROM SECURITY INTEGRATION <integration_name>
Wobei:
username
Gibt den Benutzer an, dessen Zustimmung Sie widerrufen.
role_name
Gibt die dem Zugriffstoken zugeordnete Rolle an.
integration_name
Gibt die Integration an, die den Zugriffstoken für einen bestimmten Client zugeordnet ist.
Entfernen Sie beispielsweise für die Integration MYINT die Benutzerzustimmung für die Rolle CUSTOM1 von Benutzer JANE.SMITH:
ALTER USER jane.smith
REMOVE DELEGATED AUTHORIZATION OF ROLE custom1
FROM SECURITY INTEGRATION myint;