[英]Connecting to Snowflake from Python using SSO and browser based sign-in
我正在嘗試使用 SSO 連接到 Snowflake。 我正在運行以下腳本(從這里):
import snowflake.connector
ctx = snowflake.connector.connect(
user='<username>',
account='<accountname>',
authenticator='externalbrowser'
)
cs = ctx.cursor()
try:
cs.execute("SELECT current_version()")
one = cs.fetchone()
print(one[0])
finally:
cs.close()
我所做的唯一更改是將authenticator='externalbrowser'
參數(請參閱this )傳遞給connect
方法而不是密碼。 (用戶和帳戶不能留空,所以我只是輸入虛擬字符串)。
運行腳本后,它會顯示以下消息,但不會出現瀏覽器選項卡:
向您的身份提供者發起登錄請求。 瀏覽器 window 應該已經打開,您可以完成登錄。 如果看不到,請檢查現有瀏覽器 windows 或您的操作系統設置。 按 CTRL+C 中止並重試...
不確定這是否相關,但如果我將其放置幾分鍾,腳本會以以下錯誤結束:
snowflake.connector.network.RetryRequest:HTTP 403:禁止
我見過類似的問題,但還沒有一個可以解決問題的答案。
<username>
可能應該是 email 地址。 請參閱https://community.snowflake.com或https://docs.snowflake.com/en/user-guide/admin-security-f
使用基於瀏覽器的 SSO,Snowflake 提供的客戶端(例如,Snowflake JDBC 驅動程序)需要能夠打開用戶的 web 瀏覽器。 出於這個原因,雪花提供的客戶端和使用它的客戶端應用程序需要安裝在用戶的機器上。 如果運行在服務器上的代碼使用 Snowflake 提供的客戶端,則基於瀏覽器的 SSO 不起作用。
我假設您提供了正確的用戶名和密碼。 現在,如果您仍然收到此錯誤,請確保使用默認瀏覽器(python 程序正在訪問)訪問雪花帳戶並保持 SSO session 處於活動狀態。
現在運行您的 python 程序,它必須工作。
沒有什么要求,您的代碼參數看起來不錯
authenticator='externalbrowser'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.