0

这是我通过 python 连接到雪花时遇到的错误?

OperationalError: 250003: Failed to execute request: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)

我使用以下方式连接:

ctx = snowflake.connector.connect(

          user='JoeBloggs',
          password='pwd',
          account='JoeBloggs',

          database='DEV_DATA'

         )

我是否需要输入其他参数,例如端口、主机等,我是如何找到这些的?

4

3 回答 3

2

我认为您对“帐户”的价值需要修改。看起来您在那里使用的是您的用户名,但它应该是 Snowflake 帐户。这应该是您直接连接到的 URL 部分,位于 snowflakecomputing.com 部分之前。例如,“xy12345.east-us-2.azure”。

于 2020-01-21T14:00:21.167 回答
0
First, install Snowflake python connector .pip3 install snowflake-python-connector.

Can you try with code below:

------------------------------------------------------

import snowflake.connector

PASSWORD = '*****'
USER = '<UNAME>'
ACCOUNT = '<ACCNTNAME>'
WAREHOUSE = '<WHNAME>'
DATABASE = '<DBNAME>'
SCHEMA = 'PUBLIC'

print("Connecting...")
con = snowflake.connector.connect(
  user=USER,
  password=PASSWORD,
  account=ACCOUNT,
  warehouse=WAREHOUSE,
  database=DATABASE,
  schema=SCHEMA
)

con.cursor().execute("USE WAREHOUSE " + WAREHOUSE)
con.cursor().execute("USE DATABASE " + DATABASE)

try:
    result = con.cursor().execute("Select * from <TABLENAME>")
    result_list = result.fetchall()
    print(result_list)

finally:
    con.cursor().close()
con.cursor().close()

---------------------------------------------------
于 2020-01-22T00:29:25.740 回答
0

我最初的想法是该错误表明防火墙或代理问题。特别是,代理可能会拦截 Snowflake 的 SSL 证书并将其替换为自己的。解决此问题的最佳方法是确保证书在代理中受信任,并且根据 Snowflake 的文档配置代理,以便 Snowflake 证书可以通过。

下面的文档提供了有关在 SnowSQL 中使用代理的更多信息。您可以将带有颁发者详细信息的错误传递给您的网络工程师,并可以请求将所需的 URL 列入白名单(下面还有概述白名单要求的文档)。您可以使用 SYSTEM$WHITELIST 函数将所有 URL 获取到您帐户的代理或防火墙中的白名单。

https://docs.snowflake.net/manuals/user-guide/snowsql-start.html#using-a-proxy-server https://docs.snowflake.net/manuals/user-guide/hostname-whitelist.html

于 2020-01-21T12:25:22.240 回答