提问人:x89 提问时间:10/6/2022 更新时间:6/7/2023 访问量:525
Python Snowflake 连接器的缓存密码
cache passcode for python snowflake connector
问:
为了连接我的雪花数据库,我使用密码(使用 Duo)进行身份验证,因为启用了 MFA
con = snowflake.connector.connect(
user='',
password='',
account='',
warehouse='',
database='',
schema='',
passcode='011415'
)
但是,每次我想运行我的 python 脚本时,我都需要刷新 Duo 应用程序中的密码,然后在脚本中重新输入新密码。
有什么方法可以避免每次都重复该步骤?密码可以被卡西吗?
例如,当我使用 Dbeaver 时,它会向我的 Duo 应用发送通知,一旦我批准它,在接下来的 24 小时内我不需要在那里重新进行身份验证,当然,除非我关闭计算机。
答:
0赞
Lukasz Szozda
10/6/2022
#1
Snowflake 支持缓存 MFA 令牌,包括将 MFA 令牌缓存与 SSO 相结合。
使用 MFA 令牌缓存最大程度地减少身份验证期间的提示数 — 可选
MFA 令牌缓存有助于减少在连接到 Snowflake 并对其进行身份验证时必须确认的提示数,尤其是在相对较短的时间间隔内进行多次连接尝试时。
缓存的 MFA 令牌的有效期最长为 4 小时。
0赞
PJGaetan
6/7/2023
#2
我也在寻找答案,如果将来有人在寻找它。
此解决方案不在官方文档中,但您可以使用client_request_mfa_token。DBT 对其雪花连接器使用相同类型的模式。
请注意,根据文档,您最多有 4 小时的缓存期。
对于某些 Snowflake 提供的客户端,您可以将 MFA 令牌缓存长达 4 小时。有关更多信息,请参阅使用 MFA 令牌缓存最大程度地减少身份验证期间的提示数 - 可选。
kawrgs = {
"authenticator": "externalbrowser",
"client_request_mfa_token": True,
# ...
}
with snowflake.connector.connect(**kawrgs):
pass
评论