Использованные инструменты
- Visual Studio 2017 (с SSIS)
- SQL Server Management Studio 17.9.1
Участие в процессе
Два разработчика служб SSIS и SSMS с каталогом служб Integration Services, в котором хранятся развернутые проекты.
Обзор
У меня естьрешение с проектами внутри, созданным в SSIS.Каждый проект имеет параметры проекта, определяющие для каждого соединения с базой данных два разных параметра: Строка соединения и пароль.Пароль помечен как конфиденциальный.
Project, и для всех его пакетов ProtectionLevel установлено значение EncryptAllWithPassword.Проект загружается в репозиторий git, а другой разработчик загружает изменения.Теперь ему нужно предоставить пароль, чтобы иметь возможность работать с проектом (или несколькими проектами в рамках решения).Пока все хорошо, у нас есть «главный пароль» на уровнях проекта, который защищает доступ к таким параметрам, как конфиденциальные пароли.Когда разработчик переходит к Project.params и снимает отметку с чувствительной отметки, отображается пароль.Пока все хорошо, так как ему нужно было сначала узнать пароль для проекта, чтобы увидеть пароли.
Вот сложная часть
Когда проект находится в стадии разработкиВ развернутом каталоге приложений Integration Services ProtectionLevel изменяется, и проект, который можно экспортировать из Management Studio, больше не защищен паролем.Для экспорта такого проекта очевидно требуется разрешение ssis_admin , но это выходит за рамки данной проблемы.Когда проект был развернут и затем импортирован обратно из SSMS в SSIS, разработчик может открыть его без пароля и снять отметку с чувствительной отметки для паролей Project.params.Все пароли видны для него сейчас.Это неправильно.
Чего я пытаюсь достичь
Я хочу имитировать то же поведение с чувствительными значениями, которые мы имеем в SSMS.Всякий раз, когда вы снимаете отметку с чувствительной метки в переменной среды, значение очищается, как показано ниже.
Однако, когда я делаю то же самое в проекте SSIS.params (отметка, не отмеченная галочкой), значение по-прежнему отображается, поэтому я вижу все пароли - как показано ниже.
Мне бы хотелосьон должен быть сохранен как есть, но не может видеть текстовое значение.
Возможно ли это вообще?Или, может быть, есть лучший способ организовать это?Мне нужно иметь возможность выполнять пакеты из агента SQL Server Agent (SSMS), предоставляющего переменные среды, а также со своего собственного компьютера в SSIS, поэтому мне нужно хранить эти пароли, чтобы не повторять их каждый раз.