Ошибка HY000 при подключении к AWS SQL RDS сервера с использованием pyodbc - PullRequest
0 голосов
/ 05 мая 2020

У меня есть база данных SQL Server RDS на AWS.

Я могу подключиться к базе данных с помощью SQL Server Management Studio. Я могу просто подключить lnet к конечной точке и порту.

У меня есть приложение Python Flask, работающее на моем локальном компьютере, которое пытается подключиться к базе данных, но получаю следующую ошибку:

pyodb c .Error: ('HY000', '[HY000] [Microsoft] [ODB C Driver 17 для SQL Server] SQL Сетевые интерфейсы сервера: система не может связаться с контроллер домена для обслуживания запроса проверки подлинности. Повторите попытку позже.

(SQLDriverConnect); [HY000] [Microsoft] [ODB C Драйвер 17 для SQL сервера] Не удается создать контекст SSPI (-2146892976) ; [HY000] [Microsoft] [ODB C Driver 17 для SQL Server] SQL Сетевые интерфейсы сервера: система не может связаться с контроллером домена для обслуживания запроса аутентификации. Повторите попытку позже.

[HY000] [Microsoft] [ODB C Driver 17 для SQL сервера] Невозможно создать контекст SSPI (-2146892976) ')
127.0.0.1 - - [05 / May / 2020 12:46:09] "[35m [1mGET / admin / HTTP / 1.1 [0m] 500 -
127.0.0.1 - - [05 / May / 2020 12: 46:09] "[37mGET /favicon.ico HTTP / 1.1 [0m" 200 -

Для подключения к базе данных я использую следующий код:

import pyodbc

cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; \
                       SERVER=<rds-endpoint>,1433; \
                       DATABASE=<db-identifier>; \
                       Trusted_Connection=yes; \
                       UID=<username>; \
                       PWD=<password>;')

  • Я пробовал с настройкой Trusted_Connection и без нее.
  • Я пытался указать порт отдельно, например, PORT = 1433;
  • Я проверил, что драйвер установлен правильно а также попробовал DRIVER = {SQL Server}
  • . Я проверил группы безопасности VP C и убедился, что они разрешают входящие SQL серверные TCP-соединения через порт 1433 из любого места. Я также попытался разрешить All Traffi c из любого места.

Что мне не хватает? Что на самом деле означает ошибка?

...