GENERATE_POSTGRES_ACCESS_TOKEN_FOR_USER

生成一个短期访问令牌,供 Snowflake 用户在登录 AUTHENTICATION_AUTHORITY 属性设置为 POSTGRES_OR_SNOWFLAKE 的 Snowflake Postgres 实例时作为密码使用。

使用此函数生成的短期访问令牌的有效期为 15 分钟。一旦过期,它们将无法再用于与 Snowflake Postgres 实例建立新的连接。

有关更多详细信息,请参阅 Snowflake Postgres 的 Snowflake 令牌身份验证

语法

GENERATE_POSTGRES_ACCESS_TOKEN_FOR_USER('<snowflake_postgres_instance_name>', '<postgres_username>')

实参

snowflake_postgres_instance_name

指定要为其生成短期访问令牌的 Snowflake Postgres 实例名称。如果指定的实例不存在,或者执行用户不具有该实例的所有权或 USAGE 权限,则函数执行将失败。

此实参不区分大小写。如果需要区分大小写,请使用双引号。

postgres_username

指定要为其生成短期访问令牌的 Postgres 用户名。此实参不会进行验证,因此允许为不存在或未映射到 Snowflake 用户的 Postgres 用户创建不可用的令牌。如果随后创建了映射,则有效令牌将可以使用。

此实参区分大小写。

返回

返回一个有效期为 15 分钟的短期访问令牌。

访问控制要求

对于给定的 Snowflake Postgres 实例,只有实例所有者或被授予 USAGE 权限的用户才能执行此函数。

示例

Snowflake 用户 Casey 可以生成一个短期访问令牌,以便在使用名为 reporting_user 的 Postgres 用户登录 reporting_server 时使用:

SELECT GENERATE_POSTGRES_ACCESS_TOKEN_FOR_USER('reporting_server', 'reporting_user');

如果实例名称在创建时被设置为区分大小写的 Reporting_server,则实例名称需要使用双引号:

SELECT GENERATE_POSTGRES_ACCESS_TOKEN_FOR_USER('"Reporting_server"', 'reporting_user');