Почему я получаю эту ошибку при подключении снежинки и python - PullRequest
0 голосов
/ 21 января 2020

Это ошибка, которую я получаю, когда я подключаюсь к снежинке через 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'

         )

нужно ли вводить другие параметры, такие как как порт, хост и т. д. c как я нашел, что это такое?

Ответы [ 3 ]

1 голос
/ 21 января 2020

Я думаю, что ваше значение для "аккаунта" должно быть изменено. Похоже, вы используете там свое имя пользователя, но это должна быть учетная запись Snowflake. Это должна быть часть URL-адреса, к которой вы подключаетесь напрямую, предшествующая части Snowkecomputing.com. Например, 'xy12345.east-us-2. azure'.

0 голосов
/ 22 января 2020
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()

---------------------------------------------------
0 голосов
/ 21 января 2020

Мои первые мысли о том, что ошибка указывает на проблему с брандмауэром или прокси. В частности, прокси-сервер может перехватывать SSL-сертификат Snowflake и заменять его собственным. Лучший способ решить эту проблему - убедиться, что сертификат доверен прокси-серверу, а прокси-сервер настроен в соответствии с документацией Snowflake, так что сертификат Snowflake может пройти через него.

В приведенной ниже документации содержится дополнительная информация об использовании прокси-сервера. со снегом SQL. Вы можете передать сообщение об ошибке вместе с информацией об эмитенте своему сетевому инженеру и попросить внести в белый список требуемые 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

...