Не удается подключить приложение On-Prem Django App к Microsoft Fabric DWH: Неверный атрибут строки подключения
Я пытаюсь подключить свое приложение Django к хранилищу Microsoft Fabric, но получаю следующие сообщения об ошибках:
django.db.utils.Error: ('01S00', '[01S00] [Microsoft][ODBC Driver 17 for SQL Server]Неверный атрибут строки соединения (0) (SQLDriverConnect); [01S00] [Microsoft][ODBC Driver 17 for SQL Server]Неверный атрибут строки соединения (0)')
Я пробовал различные комбинации для построения строки подключения в settings.py
. Моя первая попытка была следующей:
'FabricDW': {
'ENGINE': 'mssql',
'NAME': CONFIG["WAREHOUSE_DB_NAME"],
'USER': CONFIG["AZURE_CLIENT_ID"], # Azure AD user
'PASSWORD': CONFIG["AZURE_CLIENT_SECRET"], # Azure AD password
'HOST': CONFIG["WAREHOUSE_HOST"], # Server hostname
'PORT': '1433',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
'extra_params': 'Authentication=ActiveDirectoryServicePrincipal',
'host_is_server': True,
},
}
Я искал решения и пробовал различные подходы (например, пытался использовать различные методы аутентификации) или использовать DSN (само соединение работает нормально). Ничего не помогает.
Когда я использую такие строки подключения в обычных скриптах на python, все работает как по маслу:
server_name = CONFIG["WAREHOUSE_DB_NAME"]
database_name = CONFIG["WAREHOUSE_DB_NAME"]
client_secret = CONFIG["AZURE_CLIENT_SECRET"]
tenant_id = CONFIG["AZURE_TENANT_ID"]
client_id = CONFIG["AZURE_CLIENT_ID"]
connection_string = f'Driver={{ODBC Driver 17 for SQL Server}};' \
f'Server={server_name};Database={database_name};' \
f'UID={client_id}@{tenant_id};PWD={client_secret};' \
'Authentication=ActiveDirectoryServicePrincipal'
params = urllib.parse.quote_plus(connection_string)
engine = create_engine(f'mssql+pyodbc:///?odbc_connect={params}')
Я не знаю, есть ли какие-то сложности с парсингом, которые я упускаю из виду. Помощь была бы очень кстати.