Конфиденциальные пароли в службах интеграции ADF не разрешены - PullRequest
0 голосов
/ 27 мая 2020

Настройка реализации SSIS нашей компании выглядит следующим образом:

Локальные исходные базы данных, подключение VPN к Azure ADF и подключение VPN к машине разработки

Параметры проекта используются для настройки диспетчеров соединений проекта. Во время развертывания в Azure создается среда каталога SSISDB, на которую ссылается проект SSIS. Все параметры проекта отображаются в переменной среды. У проекта SSIS и всех включенных пакетов установлен ProtectionLevel = DontSaveSensitive. Свойства диспетчера подключений ConnectionString, ServerName, InitialCatalog, UserName и Password параметризованы, последний помечен как конфиденциальный.

Поставщик данных - OLEDB (Native OLE DB \ SQL Server Native Client 11.0). Строка подключения содержит, помимо параметров источника данных, идентификатора пользователя и исходного каталога, параметры «Provider = SQLNCLI11.1; Persist Security Info = True; Auto Translate = False;». На машинах удаленной разработки в Visual Studio (SSDT) ​​параметры конфигурации создаются для локальной разработки (DevLocal), разработки в Azure (Разработка) и принятия в Azure (Принятие). Параметры проекта устанавливаются на правильные значения для каждой конфигурации с помощью опции «Добавить параметры в конфигурации» в редакторе параметров проекта.

Редактор параметров проекта, третья кнопка изображения выделена «Добавить параметры в конфигурации»

В двух ситуациях возникает проблема, когда я хочу выполнить пакеты в проекте. Во-первых, когда я хочу отладить пакет в Visual Studio, во время процесса проверки не удалось установить соединение с исходной базой данных из-за:

Ошибка: код ошибки SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80040E4D. Доступна запись OLE DB. Источник: «Microsoft SQL Server Native Client 11.0» Результат: 0x80040E4D Описание: «Ошибка входа для пользователя DatabaseUserName».

Затем следует

[SR C REF [17 ]] Ошибка: код ошибки SSIS DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. При вызове метода AcquireConnection диспетчеру соединений «SRC1» произошел сбой с кодом ошибки 0xC0202009. Перед этим могут быть опубликованы сообщения об ошибках с дополнительной информацией о том, почему вызов метода AcquireConnection завершился неудачно.

Установка DelayValidation на True не решает проблему. Второй раз эта проблема возникает, когда я хочу запустить пакеты из среды выполнения интеграции Azure фабрики данных. Появляется то же сообщение об ошибке DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. Когда я помечаю свойство пароля как нечувствительное, проблема исчезает. Обратите внимание, что даже в ситуации, отмеченной как конфиденциальная, на машине удаленной разработки я смог:

  • подключиться к SQL Server Management Studio и запросить базы данных SRC1 и SRC2;
  • Подключите SSDT к базам данных SRC1 и SRC2 (соединения были в сети)), он может даже показать предварительный просмотр данных;
  • Выполнять пакеты из каталога SSISDB, включая конфиденциальные параметры проекта.

Как мне добиться правильного выполнения пакетов в ADF, даже если параметры пароля помечены как конфиденциальные? Как я могу использовать SSDT и пакеты отладки, если соединения используют конфигурации и пароли помечены как конфиденциальные?

...