管理针对 OAuth 的用户同意¶
本主题介绍如何管理 OAuth 的委派授权,即向与指定角色的 Snowflake 集成关联的一个或多个客户端授予的用户同意。
本主题内容:
添加委派授权¶
为用户添加委派授权,预授权同意使用特定集成的指定角色发起会话。如果没有委派授权,则用户必须在身份验证后授予对角色的同意。请注意,委派授权只能绕过给定角色的授权步骤;用户必须始终进行身份验证才能请求授权码。
只有自定义客户端才能添加委派授权。对于公共客户端(例如 Tableau Server 或 Desktop),Snowflake 始终 显示给定角色的确认对话框。
结合使用 ALTER USER 与 ADD DELEGATED AUTHORIZATION 关键字,为角色添加用户同意:
ALTER USER <username> ADD DELEGATED AUTHORIZATION
OF ROLE <role_name>
TO SECURITY INTEGRATION <integration_name>;
其中:
username
指定要添加其同意的用户。
role_name
指定与访问令牌关联的角色。
integration_name
指定与特定客户端的访问令牌关联的集成。
备注
只有安全管理员(即具有 SECURITYADMIN 角色的用户)或更高级别的用户才能执行此 SQL 命令。
例如,为针对 MYINT 集成的用户 JANE.SMITH 添加 CUSTOM1 角色的用户同意:
ALTER USER jane.smith ADD DELEGATED AUTHORIZATION
OF ROLE custom1
TO SECURITY INTEGRATION myint;
查看委派授权¶
使用 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 |
+-------------------------------+-----------+-----------+-------------------+--------------------+
列出指定用户的有效委派授权。用户可以列出自己的委派授权;否则,此命令变体需要用户的 OWNERSHIP 权限。
SHOW DELEGATED AUTHORIZATIONS
BY USER <username>;
列出指定集成的有效委派授权。此命令变体需要关于集成的 OWNERSHIP 权限(即 ACCOUNTADMIN 角色):
SHOW DELEGATED AUTHORIZATIONS
TO SECURITY INTEGRATION <integration_name>;
撤消委派授权¶
用户可以撤消对指定集成的同意。这实际上是撤消与集成相关的任何访问令牌。
要撤消用户对给定集成的同意,请执行 ALTER USER ...REMOVE DELEGATED AUTHORIZATIONS 命令。
备注
只有安全管理员(即具有 SECURITYADMIN 角色的用户)或更高级别的用户才能执行此 SQL 命令。
ALTER USER <username>
REMOVE DELEGATED AUTHORIZATIONS
FROM SECURITY INTEGRATION <integration_name>
要撤消与特定角色相关的用户同意,请在语句中添加 OF ROLE role_name
参数:
ALTER USER <username>
REMOVE DELEGATED AUTHORIZATION OF ROLE <role_name>
FROM SECURITY INTEGRATION <integration_name>
其中:
username
指定您要撤消其同意的用户。
role_name
指定与访问令牌关联的角色。
integration_name
指定与特定客户端的访问令牌关联的集成。
例如,从针对 MYINT 集成的用户 JANE.SMITH 中移除 CUSTOM1 角色的用户同意:
ALTER USER jane.smith
REMOVE DELEGATED AUTHORIZATION OF ROLE custom1
FROM SECURITY INTEGRATION myint;