SQL Server 为什么SSIS数据库角色db_ssisoperator中的用户看不到Integration Services目录中的任何项目?

eulz3vhy  于 2022-11-28  发布在  其他
关注(0)|答案(1)|浏览(192)

我正在尝试给予使用者(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),我已授予小组以下角色:

  • msdb.db_数据读取器
  • msdb.db_ssiso运算符
  • SSISDB.db_数据读取器
  • SSISDB.ssis_日志读取器

当用户展开Integration Services目录时,他们可以看到“SSISDB”目录,但其中没有任何内容。
我已经尝试为用户提供SSISDB.ssis_admin角色,这允许他们枚举项目和包,但似乎也为他们提供了INSERT/UPDATE/DELETE/MODIFY权限,这是不可接受的。
请注意,当msdb.db_sissadmin和SSISDB.ssis_admin数据库角色的使用者检视时,这个SSISDB目录会包含项目。
Here is what an SSIS Admin sees compare with the new Operator:

ccrfmcuu

ccrfmcuu1#

重读了the documentation几遍后,我终于在页面的第一段抓住了这张纸条:
可用的角色会有所不同,视您是将封装储存在SSIS目录数据库(SSISDB)还是msdb数据库而定。
因为我们的包都在SSISDB中,所以msdb角色在我们的例子中并不重要。这解释了为什么无论我对msdb角色做了什么,Integration Services中都没有任何变化。
我还意识到,[SSISDB].[ssis_logreader]数据库角色默认情况下只允许访问SSISDBReports,但不允许导航文件夹/项目/包结构。
为了允许导航结构,必须由ssis_admin或sysadmin用户在文件夹和项目级别手动授予权限。但是,我发现在项目级别(至少在我们的环境中)“public”角色具有完全权限,这似乎很奇怪。
screenshot: public permissions at the project level

相关问题