Службы SSIS: настройка встроенного режима безопасности с динамическим соединением - PullRequest
1 голос
/ 24 октября 2019

Настройка

В локальных средах мы используем SQL-аутентификацию с именем пользователя и паролем для подключения к базам данных. Я создал диспетчер подключений к проектам, в котором выражения, связанные со свойствами проекта, именем пользователя и паролем, настроены как чувствительные.

На сервере dev при запуске служб SSIS ему необходимо использовать учетную запись AD. Возможно, мне понадобится создать учетные данные / прокси-сервер для агента SQL, но сейчас я вошел в систему как пользователь и выполнил пакет через SQL.

Проблема

В проекте SSISСам я пытаюсь настроить строку динамического соединения для использования Integrated Security в одном случае и учетной записи SQL в другом. Я просто не могу понять, как это сделать. Вещи, которые я пробовал:

1 - Создан логический параметр «UseIntegratedSecurity». В строке подключения используйте это bool для установки IntegratedSecurity=SSPI или без выражения, а также используйте выражения для индивидуальной установки других атрибутов строки подключения. Это не сработало, сказал, что не удалось создать строку подключения.

2 - создал логический параметр «UseIntegratedSecurity» и напишите мою строку подключения в виде (некрасиво), например: @[$Project::IntegratedSecurity] ? "Data Source="+@[$Project::SqlServerName]+";Initial Catalog="+@[$Project::SqlServerDatabase]+";Provider=SQLNCLI11.1;Auto Translate=False;Integrated Security=SSPI;" : "Data Source="+@[$Project::SqlServerName]+";Initial Catalog="+@[$Project::SqlServerDatabase]+";Provider=SQLNCLI11.1;Auto Translate=False;User ID="+@[$Project::SqlServerUsername]+";Password=" + @[$Project::SqlServerPassword]

Это не сработало, потому что, поскольку SqlServerUserName и SqlServerPassword чувствительны, он отказывается.

3 - Попытка иметь параметры проекта для ConnectionString, Server, Database, User, Password и установить их все. Работает локально, но на сервере я получаю «Неверные спецификации авторизации».

Идеи? Спасибо

1 Ответ

2 голосов
/ 25 октября 2019

Вам необходимо разобраться с ситуацией, когда в одной среде вы должны использовать аутентификацию SQL, а в другой - аутентификацию AD.
Это можно сделать с помощью переменных среды каталога SSIS переменных. При создании файла проекта Visual Studio автоматически создает следующие так называемые параметры подключения к проекту для каждого диспетчера соединений OLEDB:

  • CM. <Имя менеджера conn> .ConnectionString
  • CM. <имя менеджера conn> .InitialCatalog
  • CM. <имя менеджера conn>. Пароль создается как конфиденциальный параметр
  • CM. <имя менеджера conn> .ServerName
  • CM. .UserName

OLEDB является примером, SSIS создает аналогичные параметры для других типов диспетчера соединений. Важный факт , вам не нужно создавать дополнительные параметры проекта. Упомянутые параметры создаются при создании проекта и присутствуют во всех проектах.

Мы создаем переменные среды, которые задают строку подключения, имя БД (начальный каталог), имя сервера и т. Д. Полезная вещь - применяется переменная строки подключениясначала, а затем с другими переменными.
Подробнее об этих параметрах можно узнать в MS Docs .

В случае, аналогичном вашему, в среде Dev - используя SQL Auth, определите строку Conn для SQL Auth и укажите имя пользователя и пароль в соответствующих переменных. В среде QA, где используется SSPI - строка подключения переработана для SSPI, переменные среды UserName и Password пусты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...