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>' ]
必填参数¶
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 |
用户 |
仅在为除您自己之外的用户生成编程访问令牌时需要。 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
输出¶
命令输出在以下各列中提供有关新生成的编程访问令牌的信息:
列 |
描述 |
---|---|
|
生成的令牌的名称。 |
|
令牌本身。使用它对端点进行身份验证。 备注 令牌仅出现在 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';
创建名为 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;