ALTER SECURITY INTEGRATION(外部 API 身份验证)¶
修改为外部 API 身份验证创建的现有安全集成的属性。
有关修改其他类型的安全集成(例如 Snowflake OAuth),请参阅 ALTER SECURITY INTEGRATION。
- 另请参阅:
CREATE SECURITY INTEGRATION(外部 API 身份验证)、DESCRIBE INTEGRATION、DROP INTEGRATION、SHOW INTEGRATIONS
语法¶
OAuth:客户端凭据¶
ALTER SECURITY INTEGRATION <name> SET
[ ENABLED = { TRUE | FALSE } ]
[ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
[ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
[ OAUTH_CLIENT_ID = '<string_literal>' ]
[ OAUTH_CLIENT_SECRET = '<string_literal>' ]
[ OAUTH_GRANT = 'CLIENT_CREDENTIALS']
[ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
[ OAUTH_ALLOWED_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED | [ , ... ]
}
OAuth:JWT Bearer Flow¶
ALTER SECURITY INTEGRATION <name> SET
[ ENABLED = { TRUE | FALSE } ]
[ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
[ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
[ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
[ OAUTH_CLIENT_ID = '<string_literal>' ]
[ OAUTH_CLIENT_SECRET = '<string_literal>' ]
[ OAUTH_GRANT = 'JWT_BEARER']
[ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
[ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
[ COMMENT = '<string_literal>' ]
ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED | [ , ... ]
}
参数¶
name
指定集成标识符(即名称)的字符串。
SET ...
指定要为集成设置的一个或多个属性/参数(用空格、逗号或新行分隔):
ENABLED = { TRUE | FALSE }
指定是启用还是禁用此安全集成。
TRUE
允许集成基于集成定义中指定的参数运行。
FALSE
暂停集成以进行维护。Snowflake 与第三方服务之间的任何集成都无法正常工作。
OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'
指定用于对外部服务进行身份验证的 URL。例如,要连接到 ServiceNow 实例,URL 应采用以下格式:
https://<instance_name>.service-now.com/oauth_token.do
其中
instance_name
是 ServiceNow 实例的名称。OAUTH_TOKEN_ENDPOINT = 'string_literal'
指定客户端用于获取访问令牌的令牌端点,方法是提供其授权授予或刷新令牌。令牌端点用于每个授权授予,但隐式授权类型除外(因为访问令牌是直接颁发的)。
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
指定将 POST 用作外部服务的身份验证方法。
OAUTH_CLIENT_ID = 'string_literal'
指定外部服务中 OAuth 应用程序的客户端 ID。
OAUTH_CLIENT_SECRET = 'string_literal'
指定 ServiceNow 实例中 OAuth 应用程序的客户端密钥。连接器使用该密钥向 ServiceNow 实例请求访问令牌。
OAUTH_GRANT = 'string_literal'
指定 OAuth 流的类型。以下其中一项:
'CLIENT_CREDENTIALS'
,当集成使用客户端凭据时。'AUTHORIZATION_CODE'
,当集成使用授权代码时。'JWT_BEARER'
,当集成将
OAUTH_ACCESS_TOKEN_VALIDITY = integer
指定由 OAuth 服务器颁发的 OAuth 访问令牌的默认生命周期(以秒为单位)。
如果访问令牌生命周期未作为 OAuth 令牌响应的一部分返回,则使用此属性中设置的值。当两个值都可用时,较小的值将用于刷新访问令牌。
OAUTH_REFRESH_TOKEN_VALIDITY = integer
指定用于确定从 OAuth 服务器获取的刷新令牌有效性的值。
OAUTH_ALLOWED_SCOPES = ( list )
指定以逗号分隔的范围列表,每个范围放在单引号内,在 OAuth 客户端凭证流期间由集成中具备 USAGE 的角色通过 OAuth 发出请求时使用。
此列表必须是安全集成的
OAUTH_ALLOWED_SCOPES
属性中定义的范围的子集。如果未指定OAUTH_SCOPES
属性值,则密钥将继承安全集成中指定的所有范围。对于 ServiceNow 连接器,唯一可能的范围值是
'useraccount'
。默认:空列表(即
[]
)。COMMENT = 'string_literal'
添加注释或覆盖集成的现有注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
OWNERSHIP |
集成 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
以下示例启动了已暂停的集成的操作:
ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;