ALTER SECURITY INTEGRATION (Snowflake OAuth)¶
修改为 Snowflake OAuth 客户端创建的现有安全集成的属性。有关修改其他类型的安全集成(例如 External OAuth)的信息,请参阅 ALTER SECURITY INTEGRATION。
- 另请参阅:
CREATE SECURITY INTEGRATION (Snowflake OAuth)、DROP INTEGRATION、SHOW INTEGRATIONS、DESCRIBE INTEGRATION
语法¶
ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
用于合作伙伴应用程序的 Snowflake OAuth
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ ENABLED = { TRUE | FALSE } ] [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REDIRECT_URI ] = '<uri>' [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE ] [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ] [ COMMENT = '<string_literal>' ] ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET { ENABLED | COMMENT } [ , ... ]
用于自定义客户端的 Snowflake OAuth
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ ENABLED = { TRUE | FALSE } ] [ OAUTH_REDIRECT_URI = '<uri>' ] [ OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE ] [ OAUTH_ENFORCE_PKCE = TRUE | FALSE ] [ PRE_AUTHORIZED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ] [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ] [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE ] [ NETWORK_POLICY = '<network_policy>' ] [ OAUTH_CLIENT_RSA_PUBLIC_KEY = <public_key1> ] [ OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = <public_key2> ] [ COMMENT = '{string_literal}' ] ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET { ENABLED | NETWORK_POLICY | OAUTH_CLIENT_RSA_PUBLIC_KEY | OAUTH_CLIENT_RSA_PUBLIC_KEY_2 | OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE COMMENT } [ , ... ]
参数¶
Snowflake OAuth 合作伙伴应用程序参数¶
当安全集成中的 OAUTH_CLIENT = <partner_application>
时使用这些参数。例如,这些参数适用于 OAUTH_CLIENT = TABLEAU_SERVER
。
name
要更改的集成的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
SET ...
指定要为集成设置的一个或多个属性/参数(用空格、逗号或新行分隔):
ENABLED = TRUE | FALSE
指定是启动集成操作还是暂停集成操作。
TRUE
允许集成基于管道定义中指定的参数运行。FALSE
会暂停集成以进行维护。Snowflake 与第三方服务之间的任何集成都无法正常工作。
OAUTH_REDIRECT_URI = 'uri'
指定客户端 URI。用户通过身份验证后,Web 浏览器将重定向到此 URI。
当
OAUTH_CLIENT = LOOKER
时,此参数是必填参数。有关详细信息,请参阅 Looker 文档 (https://docs.looker.com/setup-and-management/database-config/snowflake#oauth) 中的示例。OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE
布尔,指定当前访问令牌到期时,是否允许客户端用刷新令牌交换访问令牌。如果设置为
FALSE
,则不会发放刷新令牌。用户同意已撤销,用户必须再次确认授权。默认:
TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = integer
指定刷新令牌的有效时间(整数,以秒为单位)。此参数可用于定期使刷新令牌过期。
请注意,如果组织希望降低此参数的最小值或提高其最大值,请让账户管理员向 Snowflake 支持部门 发送请求。
OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE
IMPLICIT
默认情况下,在用户属性中设置的默认辅助角色在打开的会话中处于激活状态。
NONE
在打开的会话中不支持默认辅助角色。
默认:
NONE
BLOCKED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] )
以逗号分隔的 Snowflake 角色列表,用户在进行身份验证后 无法 显式同意使用这些角色(例如
'custom_role1', 'custom_role2'
)。默认情况下,Snowflake 会阻止 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色进行身份验证。要允许这些特权角色进行身份验证,请使用 ALTER ACCOUNT 命令,将 OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST 账户参数设为
FALSE
。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 对象和列的标签配额。
COMMENT = 'string_literal'
字符串(字面量),用于指定集成注释。
Snowflake OAuth 自定义客户端参数¶
当安全集成中的 OAUTH_CLIENT = CUSTOM
时使用这些参数。
name
要更改的集成的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
SET ...
指定要为集成设置的一个或多个属性/参数(用空格、逗号或新行分隔):
ENABLED = TRUE | FALSE
指定是启动集成操作还是暂停集成操作。TRUE
允许集成基于管道定义中指定的参数运行。FALSE
会暂停集成以进行维护。Snowflake 与第三方服务之间的任何集成都无法正常工作。
OAUTH_REDIRECT_URI = 'uri'
指定客户端 URI。用户通过身份验证后,Web 浏览器将重定向到此 URI。URI 必须受 TLS(传输层安全性)保护,除非可选的
OAUTH_ALLOW_NON_TLS_REDIRECT_URI
参数设置为TRUE
。在对 授权端点 的请求中,不要包含与重定向 URI 一同发送的查询参数。例如,如果在对授权端点的请求中,
redirect_uri
查询参数的值为https://www.example.com/connect?authType=snowflake
,请确保将 OAUTH_REDIRECT_URI 参数设置为https://www.example.com/connect
。OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE
如果为
TRUE
,则允许将OAUTH_REDIRECT_URI
设置为 不受 TLS 保护的 URI。我们强烈建议使用 TLS 来防止用于网络钓鱼攻击的中间人 OAuth 重定向。默认:
FALSE
OAUTH_ENFORCE_PKCE = TRUE | FALSE
布尔,用于指定集成是否需要代码交换证明密钥 (PKCE)。
默认:
FALSE
OAUTH_USE_SECONDARY_ROLES = IMPLICIT | NONE
IMPLICIT
默认情况下,在用户属性中设置的默认辅助角色在打开的会话中处于激活状态。
NONE
在打开的会话中不支持默认辅助角色。
默认:
NONE
PRE_AUTHORIZED_ROLES_LIST = '( role_name' [ , 'role_name , ... ] ')
以逗号分隔的 Snowflake 角色列表,用户在进行身份验证后无需显式同意使用这些角色,例如
'custom_role1', 'custom_role2'
。请注意,此列表中不能包含 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色。备注
此参数仅支持用于机密客户端。
BLOCKED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] )
以逗号分隔的 Snowflake 角色列表,用户在进行身份验证后 无法 显式同意使用这些角色(例如
'custom_role1', 'custom_role2'
)。请注意,默认情况下,此列表中包含 ACCOUNTADMIN、ORGADMIN 和 SECURITYADMIN 角色;但是,如果应从账户中移除这些角色,请让账户管理员向 Snowflake 支持部门 发送请求。
OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE
布尔,指定当前访问令牌到期时,是否允许客户端用刷新令牌交换访问令牌。如果设置为
FALSE
,则不会发放刷新令牌。用户同意已撤销,用户必须再次确认授权。默认:
TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = integer
指定刷新令牌的有效时间(整数,以秒为单位)。此参数可用于定期使刷新令牌过期。
当刷新令牌过期时,应用程序将需要再次引导用户通过授权流程以获得新的刷新令牌。
支持的最小值、最大值和默认值如下:
应用程序
最小值
最大值
默认值
Tableau Desktop
:code:`60`(1 分钟)
:code:`36000`(10 小时)
:code:`36000`(10 小时)
Tableau Cloud
:code:`60`(1 分钟)
:code:`7776000`(90 天)
:code:`7776000`(90 天)
自定义客户端
:code:`86400`(1 天)
:code:`7776000`(90 天)
:code:`7776000`(90 天)
如果因业务需求,需要降低最小值或提高最大值,请让账户管理员向 Snowflake 支持部门 发送请求。
NETWORK_POLICY = 'network_policy'
指定现有的 网络策略。此网络策略控制以下网络流量:试图授权交换访问或刷新令牌的授权代码,或使用刷新令牌获取新的访问令牌。
如果还为账户或用户设置了网络策略,请参阅 网络策略优先顺序。
OAUTH_CLIENT_RSA_PUBLIC_KEY = public_key1
指定 RSA 公钥。
OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = public_key2
指定第二个 RSA 公钥。用于键的轮换。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
指定 标签 名称和标签字符串值。
标签值始终为字符串,标签值的最大字符数为 256。
有关在语句中指定标签的信息,请参阅 对象和列的标签配额。
COMMENT = 'string_literal'
字符串(字面量),用于指定集成注释。
UNSET ...
指定要为安全集成取消设置的一个或多个属性/参数,这会将它们重置回默认值:
ENABLED
NETWORK_POLICY
OAUTH_CLIENT_RSA_PUBLIC_KEY
OAUTH_CLIENT_RSA_PUBLIC_KEY_2
TAG tag_name [ , tag_name ... ]
COMMENT
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
以下示例启动了已暂停的集成的操作:
ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;