Snowflake外部阶段:Azure SAS令牌刷新及过期查询咨询
关于Snowflake Azure外部阶段SAS令牌的问题解答
问题背景
我们的应用会为每个客户分配一个Azure Blob容器,Snowflake通过为每个客户创建的外部阶段定期从中复制数据。创建外部阶段的SQL语句如下:
CREATE STAGE db.public.cust_1_ext_stage url = 'azure://cust_container.blob.core.windows.net/data-copy' credentials =( azure_sas_token = 'sas_token_for_customer' ) file_format = (type = JSON, compression = GZIP);
当前遇到的问题是该SAS令牌每7天过期,现咨询以下两个问题:
- Snowflake是否支持刷新SAS令牌?查阅文档未找到相关方法。
- 若不支持刷新,能否通过Snowflake查询获取SAS令牌的过期时间,以便我们通过应用逻辑更新凭据?尝试过
SHOW STAGES;仅能得知存在凭据,无其他信息。
解答
1. Snowflake是否支持刷新SAS令牌?
Snowflake目前不支持直接刷新外部阶段的SAS令牌。阶段创建完成后,没有内置命令可以直接更新已配置的SAS令牌。要更新令牌,只能通过ALTER STAGE语句重新设置凭据,替换过期的SAS令牌,示例语句如下:
ALTER STAGE db.public.cust_1_ext_stage SET credentials = (azure_sas_token = 'new_valid_sas_token');
2. 能否查询SAS令牌的过期时间?
Snowflake不会存储或暴露SAS令牌的具体内容(包括过期时间),通过SHOW STAGES或其他系统视图只能看到阶段已配置凭据,但无法获取令牌的详细信息。
如果需要跟踪SAS令牌的过期时间,只能在应用侧自行管理:在生成和配置SAS令牌时,记录下其过期时间,到临近过期时触发ALTER STAGE操作更新令牌。
内容的提问来源于stack exchange,提问作者HelloWorld
相关产品推荐
相关产品推荐

