ALTER USER ... ADD PROGRAMMATIC ACCESS TOKEN (PAT)

为用户创建 编程访问令牌

另请参阅:

ALTER USER ... MODIFY PROGRAMMATIC ACCESS TOKEN (PAT)ALTER USER ... ROTATE PROGRAMMATIC ACCESS TOKEN (PAT)ALTER USER ... REMOVE PROGRAMMATIC ACCESS TOKEN (PAT)SHOW USER PROGRAMMATIC ACCESS TOKENS

语法

ALTER USER [ IF EXISTS ] [ <username> ] ADD { PROGRAMMATIC ACCESS TOKEN | PAT } <token_name>
  [ ROLE_RESTRICTION = '<string_literal>' ]
  [ DAYS_TO_EXPIRY = <integer> ]
  [ MINS_TO_BYPASS_NETWORK_POLICY_REQUIREMENT = <integer> ]
  [ COMMENT = '<string_literal>' ]
Copy

必填参数

ADD { PROGRAMMATIC ACCESS TOKEN | PAT } token_name

创建具有指定名称的编程访问令牌。

您可以使用关键字 PAT 作为指定关键字 PROGRAMMATIC ACCESS TOKEN 的简便方法。

可选参数

username

与令牌关联的用户的名称。用户不能使用其他用户的编程访问令牌进行身份验证。

要代表用户创建编程访问令牌,管理员必须 在 ALTER USER 命令中指定该用户的姓名。

如果省略 username,该命令将为当前登录的用户(此会话的活跃用户)生成编程访问令牌。

ROLE_RESTRICTION = 'string_literal'

用于权限评估和对象创建的角色的名称。这必须是已经授予用户的角色之一。

备注

如果用户是服务用户(如果 USER 对象为 TYPE=SERVICE),则此参数是必填参数。

当您使用此令牌进行身份验证时,您创建的任何对象均归该角色所有,且此角色用于权限评估。

备注

即使用户将 DEFAULT_SECONDARY_ROLES 设置为(“ALL”),也不会使用次要角色。

如果撤销与编程访问令牌关联的用户的此角色,则任何使用该令牌进行身份验证的尝试都将失败。

备注

将角色指定为 ROLE_RESTRICTION 值不会将指定角色授予编程访问令牌。用户必须已经被授予此角色。

如果省略 ROLE_RESTRICTION,系统会根据您的主要角色和次要角色评估您创建的任何对象和权限(如 通过主要角色和次要角色进行授权 中所述)。

DAYS_TO_EXPIRY = integer

编程访问令牌可用于身份验证的天数。

您可以指定一个介于 1最长到期时间 之间的值。

默认值:15

MINS_TO_BYPASS_NETWORK_POLICY_REQUIREMENT = integer

用户在此时间段内(以分钟为单位)可使用该令牌访问 Snowflake,而不受有效 网络策略 的约束。

如果某人不受网络策略约束,但需要使用编程访问令牌进行身份验证,则可以为该人设置令牌(如果 USER 对象为 TYPE=PERSON)。请参阅 网络策略要求

备注

设置 MINS_TO_BYPASS_NETWORK_POLICY_REQUIREMENT 不允许用户绕过网络策略本身。

您可以将其设置为介于 1``1440``(1 天)范围内的值。

默认:0

COMMENT = 'string_literal'

关于编程访问令牌的描述性注释。此注释显示在 Snowsight 中的 编程访问令牌列表 中。

访问控制要求

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

权限

对象

备注

MODIFY PROGRAMMATIC AUTHENTICATION METHODS

用户

仅在为除您自己之外的用户生成编程访问令牌时需要。

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

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

输出

命令输出在以下各列中提供有关新生成的编程访问令牌的信息:

描述

token_name

生成的令牌的名称。

token_secret

令牌本身。使用它对端点进行身份验证。

备注

令牌仅出现在 ALTER USER ... ADD PROGRAMMATIC ACCESS TOKEN 命令的输出中。没有其他 SQL 命令或函数会打印出或返回令牌。

如果您需要以编程方式访问此令牌,则可以使用 Snowflake Scripting 执行此命令,并从 RESULTSET 中检索令牌。

使用说明

  • 每个用户最多可以有 15 个编程访问令牌。

示例

创建与用户 example_user 关联的名为 example_token 的编程访问令牌,并继承关联用户的所有权限:

ALTER USER IF EXISTS example_user ADD PROGRAMMATIC ACCESS TOKEN example_token
  COMMENT = 'a reference example';
Copy

创建名为 example_token 的编程访问令牌,该令牌与用户 example_user 关联,继承角色 example_role 的所有权限,并在 15 天后过期:

ALTER USER IF EXISTS example_user ADD PROGRAMMATIC ACCESS TOKEN example_token
  ROLE_RESTRICTION = 'example_role'
  DAYS_TO_EXPIRY = 15;
Copy
语言: 中文