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 [ 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 属性值,则密钥将继承安全集成中指定的所有范围。

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

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

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 权限。

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

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

使用说明

关于元数据:

注意

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

示例

修改密钥注释:

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