如何让SnowSQL缓存SSO外部浏览器认证凭证,避免重复验证?
SnowSQL外部浏览器SSO凭证缓存方案
可以通过配置SnowSQL的会话缓存超时参数来避免每次运行都重复浏览器SSO认证流程,同时完美适配你频繁切换账号、用户和角色的场景,具体方法如下:
临时命令行指定缓存时长
运行SnowSQL时直接添加--session-cache-timeout参数(单位为秒),自定义凭证缓存的有效时长。例如设置1小时缓存:$ snowsql -a <ACCOUNT> -u <USERNAME> -r <ROLE> --authenticator externalbrowser --session-cache-timeout 3600 -f foo.sql在超时时间内,重复使用同一账号、用户、角色运行命令时,无需再次触发浏览器认证。
持久化多连接配置(推荐)
针对你经常切换身份组合的需求,建议在SnowSQL的配置文件(默认路径为~/.snowsql/config)中为不同的账号/用户/角色组合创建独立的连接别名,每个别名单独配置缓存超时:[connections.dev] account = dev_account_id username = dev_user role = development_role authenticator = externalbrowser session_cache_timeout = 7200 # 缓存2小时 [connections.prod] account = prod_account_id username = prod_user role = production_role authenticator = externalbrowser session_cache_timeout = 3600 # 缓存1小时后续运行对应环境的查询时,直接通过连接别名调用即可,不同别名的缓存相互独立,切换身份时不会产生冲突:
$ snowsql -c dev -f dev_query.sql $ snowsql -c prod -f prod_query.sql
缓存的凭证会存储在本地,超时后自动失效,此时需要重新完成浏览器SSO认证。
内容的提问来源于stack exchange,提问作者Dommondke
相关产品推荐
相关产品推荐

