Я пытаюсь дать пользователю (группе AD) возможность перечислить все проекты и пакеты каталога служб Integration Services, выполнить все пакеты и прочитать журналы пакетов. Я НЕ ХОЧУ, чтобы они могли загружать или изменять проекты или пакеты каталога служб Integration Services.
Это на SQL Server 2016 с использованием развертывания проекта SSIS.
На основании этого документа (https://learn.microsoft.com/en-us/sql/integration-services/security/integration-services-roles-ssis-service?view=sql-server-2016) у меня есть предоставил группе следующие роли:
Когда пользователь разворачивает каталог служб Integration Services, он может видеть каталог "SSISDB", но ничего внутри него.
Я попытался дать пользователю роль SSISDB.ssis_admin, и это позволяет ему перечислять проекты и пакеты, но также, похоже, дает ему разрешения INSERT/UPDATE/DELETE/MODIFY, что неприемлемо.
Обратите внимание, что этот каталог SSISDB включает проекты при просмотре пользователями с ролями базы данных msdb.db_ssisadmin и SSISDB.ssis_admin.
Вот что видит администратор SSIS в сравнении с новым оператором:
Перечитав документацию несколько раз, наконец-то уловил эту заметку в первом абзаце страницы:
Доступные роли различаются в зависимости от того, сохраняете ли вы пакеты в базе данных каталога служб SSIS (SSISDB) или в базе данных msdb. база данных.
Поскольку все наши пакеты находятся в SSISDB, роли msdb в нашем случае не имеют значения. Это объясняет, почему, что бы я ни делал с ролями msdb, в службах Integration Services ничего не менялось.
Я также понял, что роль базы данных [SSISDB].[ssis_logreader] по умолчанию разрешает доступ только к отчетам SSISDB, но не позволяет перемещаться по структуре папок/проектов/пакетов.
Чтобы разрешить навигацию по структуре, разрешение должно быть предоставлено вручную на уровне папки и проекта пользователем ssis_admin или sysadmin. Однако я обнаружил, что на уровне проекта (по крайней мере, в нашей среде) «общедоступная» роль имеет полные разрешения, что кажется странным.