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

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных Azure

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

Предотвращение угроз и уязвимости для безопасности

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

В следующей таблице описаны опасности и упреждающие шаги, которые уменьшают риск.

Угроза или уязвимость Определение Меры по снижению риска
Источник пакета Источник пакета — это человек или организация, создавшие пакет. Запуск пакета, источник которого неизвестен или не является надежным, может быть опасен. Определить источник пакета по цифровой подписи и запускать только пакеты из известных, доверенных источников. Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.
Содержимое пакета Содержимое пакета включает элементы пакета и их свойства. Свойства могут содержать конфиденциальные данные, например пароли или строки соединения. Элементы пакета, такие как инструкции SQL, могут предоставить информацию о структуре базы данных. Управлять доступом к пакету и его содержимому с помощью следующих шагов.

1. Управление доступом к самому пакету с помощью применения средств безопасности SQL Server к пакетам, хранящимся в базе данных msdb экземпляра SQL Server. Применение средств безопасности файловой системы (например списков управления доступом) для пакетов, хранящихся в файловой системе.

2. Управление доступом к содержимому пакета с помощью установки уровня защиты пакета.

Дополнительные сведения см. в разделах Общие сведения о безопасности (службы Integration Services) и Контроль доступа для конфиденциальных данных в пакетах.
Выходные данные пакета Пакеты, настроенные для использования конфигураций, контрольных точек и журналов, создают данные, которые хранятся вне пакетов. Эти сведения могут содержать конфиденциальные данные. Защита конфигураций и журналов, сохраняемых пакетами в таблицах баз данных SQL Server , с помощью средств безопасности SQL Server .

Управление доступом к файлам с помощью списков управления доступом, доступных в файловой системе.

Дополнительные сведения см. в разделе Доступ к файлам, используемым пакетами

Функции управления удостоверениями

Применение функций управления удостоверениями в пакетах позволяет достичь следующей цели.

Обеспечение открытия и запуск только пакетов из надежных источников

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

Функции управления доступом

Применение функций управления удостоверениями в пакетах позволяет достичь следующей цели.

Обеспечение открытия и запуск пакетов только зарегистрированными пользователями

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

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

  • Управлять доступом к пакетам и конфигурациям пакетов, хранимым в SQL Server.

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

  • Управлять доступом к службе Службы Integration Services и сведениям о пакетах, отображаемых службой в среде SQL Server Management Studio.

Управление доступом к содержимому пакетов

Чтобы помочь ограничить доступ к содержимому пакета, можно зашифровать пакеты, устанавливая свойство ProtectionLevel пакета. Это свойство можно установить на уровень защиты, необходимый пакету. Например, в среде групповой разработки пакет может быть зашифрован при помощи пароля, который известен членам группы, принимающим участие в его разработке.

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

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

Дополнительные сведения см. в разделе Access Control for Sensitive Data in Packages.

Управление доступом к пакетам

Пакеты служб Службы Integration Services могут быть сохранены в базе данных msdb экземпляра SQL Serverили в файловой системе как XML-файлы с расширением DTSX. Дополнительные сведения см. в разделе Сохранение пакетов.

Сохранение пакетов в базе данных msdb

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

SQL Server пакеты, хранящиеся в базе данных msdb, также можно защитить, применив роли уровня базы данных Службы Integration Services . Службы Integration Services содержат три предопределенные роли базы данных, предназначенные для управления доступом к пакетам: db_ssisadmin, db_ssisltduser и db_ssisoperator. Роль с правом чтения и правом записи может быть определена для каждого пакета. Для использования в пакетах служб Службы Integration Services можно также определить пользовательские роли уровня базы данных. Роли могут быть реализованы только в пакетах, которые хранятся в базе данных msdb экземпляра SQL Server. Дополнительные сведения см. в разделе Роли служб Integration Services (службы SSIS).

Сохранение пакетов в файловой системе

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

Управление доступом к файлам, используемым пакетами

Пакеты, настроенные для использования конфигураций, контрольных точек и журналов, создают данные, которые хранятся вне пакетов. Эти данные могут быть конфиденциальными и должны быть защищены. Файлы контрольных точек могут быть сохранены только в файловой системе, а конфигурации и протоколы — либо в файловой системе, либо в таблицах базы данных SQL Server . Сохраненные в SQL Server конфигурации и протоколы защищены системой безопасности SQL Server , но данные, записанные в файловую систему, требуют дополнительной защиты.

Дополнительные сведения см. в разделе Доступ к файлам, используемым пакетами.

Безопасное сохранение конфигураций пакетов

Конфигурации пакетов могут быть сохранены в таблице базы данных SQL Server или в файловой системе.

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

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

Дополнительные сведения о конфигурациях см. в разделе Package Configurations.

Управление доступом к службе Integration Services

SQL Server Management Studio использует службу SQL Server . Чтобы запретить неавторизованным пользователям просмотр сведений о пакетах, сохраненных на локальных и удаленных компьютерах, и тем самым овладеть личными сведениями, нужно ограничить доступ к компьютерам, на которых выполняется служба SQL Server .

Дополнительные сведения см. в разделе Доступ к службам Integration Services.

Доступ к файлам, используемым пакетами

Уровень защиты пакета не способен защитить файлы, хранимые вне пределов пакета. Эти файлы включают в себя:

  • Файлы конфигурации.

  • файлы контрольных точек

  • Файлы журнала

Эти файлы должны быть защищены отдельно, особенно если они содержат конфиденциальные сведения.

Файлы конфигурации

Если в файле конфигурации хранятся конфиденциальные сведения, такие как данные об имени входа и пароле, то следует сохранить файл в SQL Serverили использовать список управления доступом (ACL), чтобы защитить расположение или папку, где хранится этот файл, и разрешить доступ только для определенных учетных записей. Обычно предоставляется доступ для тех учетных записей, которым разрешено запускать пакеты, управлять пакетами и разрешать проблемы, связанные с пакетами, в том числе проверять содержимое файла настройки, контрольные точки и файлы журнала. SQL Server обеспечивает более безопасное хранение, так как предлагает защиту на уровне сервера и базы данных. Чтобы сохранить конфигурации в SQL Server, следует использовать тип конфигурации SQL Server . Чтобы сохранить в файловую систему, следует использовать тип конфигурации XML.

Дополнительные сведения см. в разделах Конфигурации пакетов, Создание конфигураций пакетови Вопросы безопасности при установке SQL Server.

файлы контрольных точек

Таким же образом, если используемый пакетом файл контрольных точек содержит конфиденциальные сведения, то следует использовать список управления доступом (ACL) для защиты расположения или папки, где хранится этот файл. Файлы контрольных точек сохраняют данные как о текущем состоянии пакета, так и о текущих значениях переменных. Например, пакет может включать в себя пользовательскую переменную, содержащую номер телефона. Дополнительные сведения см. в разделе Restart Packages by Using Checkpoints.

Файлы журнала

Записи журнала, сохраненные в файловой системе, также должны быть защищены с использованием списка управления доступом (ACL). Записи журнала также могут храниться в таблицах SQL Server и быть защищены системой безопасности SQL Server . Записи журнала могут содержать конфиденциальные сведения, например если пакет содержит задачу «Выполнение SQL», которая создает инструкцию SQL, ссылающуюся на номер телефона, то запись журнала для инструкции SQL содержит и номер телефона. Инструкция SQL также может раскрыть закрытые данные об именах таблиц и столбцов данных. Дополнительные сведения см. в статье Ведение журналов в службах Integration Services (SSIS).

Доступ к службам Integration Services

Уровни защиты пакетов могут ограничивать круг пользователей, которым разрешается изменять и выполнять пакет. Дополнительная защита требуется для ограничения круга пользователей, которым разрешается просматривать список пакетов, выполняющихся в данный момент на сервере, и останавливать выполнение пакетов в среде SQL Server Management Studio.

SQL Server Management Studio использует службы SQL Server . Члены группы «Администраторы» Windows могут просматривать и останавливать все выполняемые в текущее время пакеты. Пользователи, не являющиеся членами группы «Администраторы», могут просматривать и останавливать только пакеты, запущенные ими самими.

Важно ограничить доступ к компьютерам, на которых запущены службы SQL Server , особенно службы SQL Server , которые могут перечислить удаленные папки. Любой пользователь, прошедший проверку подлинности, может запрашивать перечисление пакетов. Даже если служба не находит службу, она перечисляет папки. Имена папок могут оказаться полезными сведениями для злоумышленника. Если администратор настроил службу для перечисления папок на удаленном компьютере, пользователи также смогут увидеть имена, которые они в действительности не должны были видеть.

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