Использование ролей служб Integration Services
Службы SQL Server Integration Services содержат три предопределенные роли базы данных, предназначенные для управления доступом к пакетам db_ssisadmin, db_ssisltduser и db_ssisoperator. Роли могут быть реализованы только для пакетов, сохраненных в базе данных msdb в SQL Server. С помощью среды Среда SQL Server Management Studio можно назначить роль пакету. Назначения ролей сохраняются в базе данных msdb.
В следующей таблице приводятся операции чтения и записи Windows и фиксированных ролей уровня базы данных в службах Integration Services.
Роль |
Операция чтения |
Операция записи |
---|---|---|
db_ssisadmin или sysadmin |
Перечислить свои пакеты. Перечислить все пакеты. Посмотреть свои пакеты. Посмотреть все пакеты. Выполнить свои пакеты. Выполнить все пакеты. Экспортировать свои пакеты. Экспортировать все пакеты. Выполнить все пакеты агента SQL Server. |
Импортировать пакеты. Удалить свои пакеты. Удалить все пакеты. Изменить роли своих пакетов. Изменить роли всех пакетов. ![]()
Члены роли db_ssisadmin и роли dc_admin могут повышать свои права доступа до sysadmin. Такое повышение права доступа может произойти, так как эти роли могут изменять пакеты служб Integration Services, а пакеты Integration Services могут выполняться SQL Server при помощи контекста безопасности sysadmin агента SQL Server. Чтобы предотвратить такое повышение прав при выполнении планов обслуживания, наборов сбора данных и других пакетов служб Integration Services, настройте задания агента SQL Server (запускающие пакеты) на использование учетной записи-посредника с ограниченными правами или добавьте членов sysadmin в роли db_ssisadmin и dc_admin.
|
db_ssisltduser |
Перечислить свои пакеты. Перечислить все пакеты. Посмотреть свои пакеты. Выполнить свои пакеты. Экспортировать свои пакеты. |
Импортировать пакеты. Удалить свои пакеты. Изменить роли своих пакетов. |
db_ssisoperator |
Перечислить все пакеты. Посмотреть все пакеты. Выполнить все пакеты. Экспортировать все пакеты. Выполнить все пакеты агента SQL Server. |
Нет |
Администраторы Windows |
Просмотреть подробности выполнения всех запущенных пакетов. |
Остановить все выполняемые пакеты. |
Таблица sysssispackages в базе данных msdb содержит пакеты, сохраненные в SQL Server. Дополнительные сведения см. в разделе sysssispackages (Transact-SQL).
Таблица sysssispackages включает в себя столбцы, которые содержат сведения о ролях, назначенных пакетам.
В столбце readerrole указывается роль, у которой есть право чтения из пакета.
В столбце writerrole указывается роль, у которой есть право записи в пакет.
Столбец ownersid содержит уникальный идентификатор безопасности пользователя, создавшего пакет. Этот столбец определяет владельца пакета.
По умолчанию разрешения предопределенных ролей уровня базы данных db_ssisadmin и db_ssisoperator и уникальный идентификатор безопасности пользователя, создавшего пакет, применяются к роли модуля чтения пакета, а разрешение роли db_ssisadmin и уникальный идентификатор безопасности пользователя, создавшего пакет, применяются к роли модуля записи пакета. Пользователь должен быть членом роли db_ssisadmin, db_ssisltduser или db_ssisoperator, чтобы получить доступ на чтение пакета. Пользователь должен быть членом роли db_ssisadmin, чтобы получить доступ для записи.
Фиксированные роли уровня базы данных работают в сочетании с пользовательскими ролями. Пользовательские роли — это роли, которые создаются в среде Среда SQL Server Management Studio и после используются для назначения разрешений пакетам. Чтобы получить доступ к пакету, пользователь должен быть членом пользовательской роли и соответствующей фиксированной роли служб Integration Services уровня базы данных. Например, если пользователи являются членами определяемой пользователем роли AuditUsers, которая назначена пакету, они также должны быть членами роли db_ssisadmin, db_ssisltduser или db_ssisoperator, чтобы иметь доступ для чтения пакета.
Если пакетам не назначить пользовательских ролей, то доступом к пакетам будут управлять только предопределенные роли базы данных.
Если используются пользовательские роли, то перед тем как назначать их пакетам, нужно добавить их в базу данных msdb. Новую роль базы данных можно создать в среде Среда SQL Server Management Studio.
Роли уровня базы данных служб Integration Services предоставляют право доступа к системным таблицам служб Integration Services в базе данных msdb, но не к системным таблицам служб DTS, таким как sysdtspackages в базе данных msdb. Необходимо предоставить пользователям право доступа к системным таблицам DTS до того, как они получат возможность выполнять некоторые задачи управления, например импортирование пакета служб DTS в среду Management Studio. Сведения о поддержке служб DTS см. в разделе «Поддержка служб DTS» в SQL Server 2008.
Шаг 1. Откройте обозреватель объектов и подключитесь к службам Integration Services
Перед тем как с помощью среды Среда SQL Server Management Studio назначить роли для пакетов, необходимо открыть обозреватель объектов в среде Среда SQL Server Management Studio и подключиться к службам Integration Services.
Служба Integration Services должна быть запущена перед подключением к Integration Services.
Открытие обозревателя объектов и подключение к службам Integration Services
Откройте среду Среда SQL Server Management Studio.
Щелкните обозреватель объектов в меню Вид.
На панели инструментов обозревателя объектов нажмите кнопку Соединить и выберите Службы Integration Services.
В диалоговом окне Соединение с сервером введите имя сервера. Можно использовать точку (.), (локальный объект) или localhost, чтобы указать локальный сервер.
Нажмите кнопку Соединить.
Шаг 2. Назначение пакетам ролей модулей чтения и записи
Можно назначить роль чтения и модуля записи для каждого пакета.
Назначение пакетам роли чтения и модуля записи
В обозревателе объектов найдите соединение служб Integration Services.
Разверните папку «Сохраненные пакеты», затем разверните вложенную папку, содержащую пакеты, для которых необходимо назначить роли.
Щелкните правой кнопкой мыши на пакете, которому необходимо назначить роли.
В диалоговом окне Роли пакета выберите роль модуля чтения из списка Роль модуля чтения и роль модуля записи из списка Роль модуля записи.
Нажмите ОК.
Создание пользовательской роли
SQL Server (служба MSSQLSERVER) должна быть запущена перед подключением к компоненту Database Engine и получением доступа к базе данных msdb.
Создание пользовательской роли
Откройте среду Среда SQL Server Management Studio.
Щелкните обозреватель объектов в меню Вид.
На панели инструментов обозревателя объектов нажмите кнопку Соединить и выберите Компонент Database Engine.
В диалоговом окне Соединение с сервером введите имя сервера и выберите режим проверки подлинности. Можно использовать точку (.), (локальный объект) или localhost, чтобы указать локальный сервер.
Нажмите кнопку Соединить.
Последовательно разверните узлы «Базы данных», «Системные базы данных», «msdb», «Безопасность» и «Роли».
В узле «Роли» щелкните правой кнопкой мыши на элементе «Роли базы данных» и выберите Создать роль базы данных.
На странице «Общие» введите имя и при необходимости укажите владельца, схемы владельца и членов роли.
При необходимости нажмите кнопку Разрешения и настройте разрешения объекта.
При необходимости нажмите кнопку Расширенные свойства и настройте расширенные свойства.
Нажмите кнопку ОК.
|