Не удается подключить приложение 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}')

Я не знаю, есть ли какие-то сложности с парсингом, которые я упускаю из виду. Помощь была бы очень кстати.

Вернуться на верх