ALTER SECRET

修改现有密钥的属性。

另请参阅:

CREATE SECRETDESCRIBE SECRETDROP SECRETSHOW SECRETS

语法

OAuth (使用客户端凭据流程):

ALTER SECRET [ IF EXISTS ] <name> SET [ OAUTH_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
                                      [ COMMENT = '<string_literal>' ]

ALTER SECRET [ IF EXISTS ] <name> UNSET COMMENT
Copy

OAuth (使用授权代码授予流程:)

ALTER SECRET [ IF EXISTS ] <name> SET [ OAUTH_REFRESH_TOKEN = '<token>' ]
                                      [ OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '<string_literal>' ]
                                      [ COMMENT = '<string_literal>' ]

ALTER SECRET [ IF EXISTS ] <name> UNSET COMMENT
Copy

云提供商:

ALTER SECRET [ IF EXISTS ] <name> SET [ API_AUTHENTICATION = '<cloud_provider_security_integration>' ]
                                      [ COMMENT = '<string_literal>' ]

ALTER SECRET [ IF EXISTS ] <name> UNSET COMMENT
Copy

基本身份验证:

ALTER SECRET [ IF EXISTS ] <name> SET [ USERNAME = '<username>' ]
                                      [ PASSWORD = '<password>' ]
                                      [ COMMENT = '<string_literal>' ]

ALTER SECRET [ IF EXISTS ] <name> UNSET COMMENT
Copy

通用字符串:

ALTER SECRET [ IF EXISTS ] <name> SET [ SECRET_STRING = '<string_literal>' ]
                                      [ COMMENT = '<string_literal>' ]

ALTER SECRET [ IF EXISTS ] <name> UNSET COMMENT
Copy

OAuth (使用客户端凭据流程)参数

name

指定密钥的标识符(即名称)的字符串;在架构中必须唯一。

SET ...

指定要设置的一个(或多个)参数(用空格、逗号或换行符分隔)。

OAUTH_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )

指定在以下情况下使用的以逗号分隔的范围列表:在 OAuth 客户端凭据流程期间,对集成具有 USAGE 权限的角色从 OAuth 服务器发出请求。

此列表必须是安全集成的 OAUTH_ALLOWED_SCOPES 属性中定义的范围的子集。如果未指定 OAUTH_SCOPES 属性值,则密钥将继承安全集成中指定的所有范围。

AWS IAM 必填参数

SET ...

指定要设置的一个(或多个)参数(用空格、逗号或换行符分隔)。

TYPE = CLOUD_PROVIDER_TOKEN

指定这是用于云提供商(例如 Amazon Web Services AWS)的密钥。

API_AUTHENTICATION = 'cloud_provider_security_integration'

指定将 Snowflake 连接到云提供商的 Snowflake 安全集成name 值。

OAuth (使用授权代码授予流程)参数

name

指定密钥的标识符(即名称)的字符串;在架构中必须唯一。

SET ...

指定要设置的一个(或多个)参数(用空格、逗号或换行符分隔)。

OAUTH_REFRESH_TOKEN = 'token'

指定字符串形式的令牌,它用于在访问令牌过期时从 OAuth 授权服务器获取新的访问令牌。

OAUTH_REFRESH_TOKEN_EXPIRY_TIME = 'string_literal'

当 OAuth 刷新令牌过期时,指定字符串形式的时间戳。

基本身份验证参数

name

指定密钥的标识符(即名称)的字符串;在架构中必须唯一。

SET ...

指定要为会话设置的一个(或多个)参数(用空格、逗号或换行符分隔)。

USERNAME = 'username'

指定要存储在密钥中的用户名值。

使用密钥进行基本身份验证时指定此属性值(即密钥为 TYPE = PASSWORD)。

PASSWORD = 'password'

指定要存储在密钥中的密码值。

使用密钥进行基本身份验证时指定此属性值(即密钥为 TYPE = PASSWORD)。

通用字符串参数

name

指定密钥的标识符(即名称)的字符串;在架构中必须唯一。

SET ...

指定要设置的一个(或多个)参数(用空格、逗号或换行符分隔)。

SECRET_STRING = 'string_literal'

指定要存储在密钥中的字符串。

该字符串可以是 API 令牌或敏感值字符串,可在 UDF 或存储过程的处理程序代码中使用。有关详细信息,请参阅 创建和使用外部访问集成

不应使用此属性来存储任何类型的 OAuth 令牌;对于您的 OAuth 用例,请使用其他密钥类型之一。

常用参数:所有语法

SET ...

指定要为会话设置的一个(或多个)参数(用空格、逗号或换行符分隔)。

COMMENT = 'string_literal'

用于指定密钥注释的字符串(字面量)。

默认:无值

UNSET ...

指定要为密钥取消设置的一个(或多个)属性/参数,这会将它们重置回默认值:

  • COMMENT

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

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).

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

关于元数据:

注意

客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

修改密钥注释:

ALTER SECRET service_now_creds_pw SET COMMENT = 'production secret for servicenow';
Copy
语言: 中文