Поделиться через


Контроль доступа для конфиденциальных данных в пакетах

Для защиты данных в пакете служб Службы Integration Services можно задать уровень защиты, способствующий защите или только конфиденциальных данных, или всех данных в пакете. Более того, эти данные можно зашифровать с паролем или ключом пользователя или возложить задачу шифрования данных на базу данных. Кроме того, используемый уровень защиты пакета не обязательно является статическим и изменяется в течение жизненного цикла пакета. Часто один уровень защиты устанавливается во время развертывания, а другой — сразу после развертывания пакета.

ПримечаниеПримечание

Помимо уровней защиты, описанных в данном разделе, для защиты пакетов, сохраняемых на сервере Службы Integration Services, можно использовать предопределенные роли уровня базы данных.

Определение конфиденциальных данных

В пакете служб Службы Integration Services следующие данные определены как конфиденциальные.

  • Часть строки соединения, содержащая пароль. Однако если выбран параметр, который шифрует все, строка соединения целиком будет рассматриваться как конфиденциальная.

  • Сформированные задачей XML-узлы, помеченные как конфиденциальные. Пометки XML-узлов управляются службами Службы Integration Services и не могут изменяться пользователями.

  • Любая переменная, помеченная как конфиденциальная. Пометки переменных управляются службами Службы Integration Services.

В службах Службы Integration Services свойство рассматривается как конфиденциальное в зависимости от того, назначил ли свойство конфиденциальным разработчик компонента Службы Integration Services, такого как диспетчер соединений или задача. Пользователи не могут добавлять или удалять свойства из списка свойств, которые рассматриваются как конфиденциальные.

Шифрование

Шифрование, используемое уровнями защиты пакетов, выполняется при помощи API-интерфейса DPAPI (Майкрософт), являющегося частью шифровального API-интерфейса (CryptoAPI).

Уровни защиты пакета, шифрующие пакеты с паролями, требуют введения пароля. Если пользователь изменяет уровень защиты с уровня, не использующего пароль, на уровень, его использующий, пользователю будет предложено ввести пароль.

Кроме того, для уровней защиты, использующих пароли, службы Службы Integration Services используют алгоритм шифрования Triple DES с длиной ключа 192 бита, доступный из .NET Framework Class Library (FCL).

Уровни защиты

Следующая таблица описывает уровни защиты, предоставляемые службами Службы Integration Services. Значения в скобках — это значения из DTSProtectionLevel. Эти значения отображаются в окне «Свойства», которое используется для настройки свойств пакета при работе с пакетами в среде SQL Server Data Tools (SSDT).

Уровень защиты

Описание

Не сохранять конфиденциальные данные (DontSaveSensitive).

Подавляет значения конфиденциальных свойств в пакете при сохранении. Этот уровень защиты не шифрует, а предотвращает сохранение в пакете свойств, помеченных как конфиденциальные, и таким образом делает конфиденциальные данные недоступными для других пользователей. Если другой пользователь откроет пакет, конфиденциальная информация будет заменена пробелами и пользователь сам будет должен задать эти конфиденциальные сведения.

При использовании со средством dtutil (dtutil.exe) этот уровень защиты соответствует значению 0.

Шифровать все данные паролем (EncryptAllWithPassword).

Использует пароль для шифрования всего пакета. Пакет шифруется с использованием пароля, который пользователь предоставляет при создании или экспорте пакета. Чтобы открыть пакет в конструкторе служб Службы SSIS или запустить пакет с помощью программы командной строки dtexec, пользователь должен предоставить пароль пакета. Без пароля пользователь не может получить доступ к пакету или запустить его.

При использовании с программой dtutil этот уровень защиты соответствует значению 3.

Шифровать все данные пользовательским ключом (EncryptAllWithUserKey).

Использует ключ на основе текущего профиля пользователя для шифрования всего пакета. Открыть пакет в конструкторе служб Службы SSIS или запустить пакет с помощью программы командной строки dtexec может только пользователь, создавший или экспортировавший пакет.

При использовании с программой dtutil этот уровень защиты соответствует значению 4.

ПримечаниеПримечание

Для уровней защиты с ключом пользователя службы Службы Integration Services используют стандарты DPAPI. Дополнительные сведения о DPAPI см. в библиотеке MSDN по адресу https://msdn.microsoft.com/library.

Шифровать конфиденциальные данные паролем (EncryptSensitiveWithPassword).

Использует пароль для шифрования только значений конфиденциальных свойств пакета. Для шифрования используется DPAPI. Конфиденциальные данные сохраняются как часть пакета, но эти данные шифруются с использованием пароля, предоставляемого текущим пользователем при создании или экспорте пакета. Чтобы открыть пакет в конструкторе служб Службы SSIS, пользователь должен предоставить пароль пакета. Если пароль не предоставлен, пакет открывается без конфиденциальных данных и текущий пользователь должен ввести новые значения для конфиденциальных данных. Если пользователь пытается выполнить пакет без предоставления пароля, выполнения не происходит. Дополнительные сведения о паролях и выполнении из командной строки см. в разделе Программа dtexec.

При использовании с программой dtutil этот уровень защиты соответствует значению 2.

Шифровать конфиденциальные данные пользовательским ключом (EncryptSensitiveWithUserKey).

Использует ключ на основе текущего профиля пользователя для шифрования только значений конфиденциальных свойств пакета. Только тот же пользователь, использующий тот же профиль, сможет загрузить пакет. Если другой пользователь откроет пакет, конфиденциальная информация будет заменена пробелами и пользователь сам должен задать эти конфиденциальные данные. Если пользователь пытается выполнить пакет, запуска не происходит. Для шифрования используется DPAPI.

При использовании с программой dtutil этот уровень защиты соответствует значению 1.

ПримечаниеПримечание

Для уровней защиты с ключом пользователя службы Службы Integration Services используют стандарты DPAPI. Дополнительные сведения о DPAPI см. в библиотеке MSDN по адресу https://msdn.microsoft.com/library.

Шифровать в зависимости от хранилища на сервере (ServerStorage).

Защищает весь пакет, используя роли базы данных SQL Server. Этот параметр поддерживается, если пакет сохранен в базе данных SQL Server msdb. Кроме того, каталог SSISDB использует уровень защиты ServerStorage

Этот параметр не поддерживается, когда пакет сохраняется в файловой системе из среды SQL Server Data Tools (SSDT).

Установка уровня защиты и каталог SSISDB

Каталог SSISDB использует уровень защиты ServerStorage. При развертывании проекта Службы Integration Services на сервере Службы Integration Services каталог автоматически шифрует данные пакета и конфиденциальные значения. Каталог также автоматически расшифровывает данные после их получения.

При экспорте проекта (ISPAC-файл) с сервера Службы Integration Services в файловую систему система автоматически изменяет уровень защиты на EncryptSensitiveWithUserKey. При импорте проекта с помощью мастера импорта проектов служб Integration Services в среду SQL Server Data Tools (SSDT) свойство ProtectionLevel в окне Свойства имеет значение EncryptSensitiveWithUserKey.

Назначение уровня защиты на основе жизненного цикла пакета

Уровень защиты пакета служб SQL Server Службы Integration Services задается, когда начинается его разработка в среде SQL Server Data Tools (SSDT). Позже, когда пакет развернут, импортирован или экспортирован из служб Службы Integration Services в службы Среда SQL Server Management Studio либо скопирован из среды SQL Server Data Tools (SSDT) в SQL Server, хранилища пакетов служб Службы SSIS или файловой системы, можно изменить уровень защиты пакета. Например, если пользователь создает и сохраняет пакеты на своем компьютере с одним из параметров ключевых пользовательских уровней защиты, возможно, ему захочется изменить уровень защиты, предоставляя пакет другим пользователям, так как иначе они попросту не смогут открыть пакет.

Как правило, изменение уровня защиты охватывает следующие шаги.

  1. Во время развертывания рекомендуется принять значение уровня защиты пакетов по умолчанию: EncryptSensitiveWithUserKey. Этот параметр позволит гарантировать просмотр важных значений в пакете только разработчиком. Можно подумать об использовании EncryptAllWithUserKey или DontSaveSensitive.

  2. Когда все готово к развертыванию пакетов, уровень защиты следует изменить на уровень, не зависящий от ключа пользователя разработчика. В этом случае обычно требуется выбрать EncryptSensitiveWithPassword или EncryptAllWithPassword. Зашифруйте пакеты, назначив временный надежный пароль, который также известен рабочей группе в рабочей среде.

  3. После развертывания пакетов в рабочей среде рабочая группа может повторно зашифровать развернутые пакеты, назначив известный им надежный пароль. Другой вариант: они могут зашифровать развернутые пакеты, выбрав EncryptSensitiveWithUserKey или EncryptAllWithUserKey и используя локальные данные учетной записи, с которой выполняются пакеты.

Связанные задачи

См. также

Значок служб Integration Services (маленький) Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загрузить новейшую документацию, статьи, образцы и видеоматериалы корпорации Майкрософт, а также лучшие решения участников сообщества, посетите страницу служб Службы Integration Services на сайте MSDN:


Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.

См. также

Задания

Импорт и экспорт пакетов (службы SSIS)

Основные понятия

Пакеты служб Integration Services (SSIS)

Общие сведения о безопасности (службы Integration Services)