症状
请考虑以下情形:
-
您可以在 Microsoft SQL Server 2012年或 SQL Server 2014年运行集成服务目录和 SSISDB 目录的实例。
-
这样他们才能访问到 SSIS 目录文件夹、 项目或环境安全项目,可以向 Windows 组的成员授予权限。
注意:您可以在下列任一方式授予权限︰-
使用管理工作室。为此,右键单击在集成服务目录中的对象,选择属性,然后,在权限页上,浏览到组中,添加用户组,然后选择此组的权限。
-
调用下面的存储的过程︰
[SSISDB].[catalog].[grant_permission]
-
-
Windows 组的成员的 Windows 用户试图查看并使用管理 Studio 或存储的过程的集成服务目录中的 SSISDB 数据库中执行包。
在此方案中,用户不能看到他们被授予的权限的文件包和无法验证或运行这些包。
原因
SSISDB 的内部视图中发生此问题。这样可以防止用户时使用 Windows 组成员资格所授予的权限具有预期的有效权限。
解决方案
第一次修复该问题的SQL Server累积更新包
对于 SQL Server 2014年的累积更新 1/en-us/help/2931693
SQL Server 2012 sp1 的累积更新 7/en-us/help/2894115
SQL Server 的每个新累积更新包含以前的累积更新所包含的所有修补程序和所有安全修补程序。查看 SQL Server 的最新累积更新:
解决方法
若要变通解决此问题,请不要使用 Windows 组不同用户访问安全 SSIS。相反,在 SQL Server 中使用用户定义的数据库角色来封装所必需的 Windows 用户列表,然后将权限分配给此数据库角色。
若要执行此操作,请执行以下步骤:
-
创建必要的 Windows 登录到 SQL Server 实例,然后将用户访问权限提供给 SSISDB 数据库。例如,您可以通过转到安全,单击登录名,然后单击新建登录使用管理 Studio。或者,您可以对每个 Windows 用户登录使用下面的脚本︰
使用母版
转到 创建登录域\用户名WINDOWS 使用 DEFAULT_DATABASE =主 转到 使用SSISDB 转到 创建用户的域\用户名用于登录域\用户名 转到 -
在 SSISDB 数据库中,创建一个用户定义的数据库角色,例如ssis_users。例如,您可以通过转到数据库,单击SSISDB、安全、 单击角色,单击数据库角色,然后单击新的数据库角色使用管理 Studio。或者,您可以使用以下脚本︰
使用SSISDB
转到 创建角色ssis_users 转到 -
SSISDB 所需的用户添加到角色ssis_users。例如,您可以通过转到数据库,单击SSISDB、安全、 单击角色,单击数据库角色,单击角色成员,然后单击添加使用管理 Studio。或者,您可以使用以下脚本︰
使用SSISDB
转到 改变角色ssis_users添加成员的域\用户名 转到 -
用鼠标右键单击在集成服务目录中的可保护对象属性在权限页,可以将数据库角色添加到权限,单击浏览和,然后选择允许或拒绝对所需的显式权限,如下所示︰
注意:这些权限可能不足以成功地执行 SSIS 包。每个 SSIS 程序包是一个自定义的设计和可能访问某些服务器和数据库或共享验证或已成功执行的 SSIS 包的其他特定要求。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
参考资料
有关详细信息,请参阅 Microsoft 开发人员网络 (MSDN) 网站上的以下主题︰
SSIS 目录 文件夹属性对话框中 项目属性对话框 环境属性对话框 请参阅 Microsoft 用于描述软件更新的术语。