使用 Integration Services 角色

SQL ServerIntegration Services 包括三个固定数据库级角色:db_ssisadmin、db_ssisltduser 和 db_ssisoperator,用于控制对包的访问。角色只能在保存到 SQL Server 的 msdb 数据库中的包上实现。可以使用 SQL Server Management Studio 将角色分配给包。角色分配保存到 msdb 数据库中。

下表介绍了 Integration Services 中 Windows 和固定数据库级角色的读写操作。

角色

读操作

写操作

db_ssisadmin

sysadmin

枚举自己的包。

枚举所有包。

查看自己的包。

查看所有包。

执行自己的包。

执行所有包。

导出自己的包。

导出所有包。

在 SQL Server 代理中执行所有包。

导入包。

删除自己的包。

删除所有包。

更改自己的包角色。

更改所有包角色。

重要说明重要提示
db_ssisadmin 角色和 dc_admin 角色的成员可以将其特权提升为 sysadmin。因为这些角色可以修改 Integration Services 包,而 SQL Server 使用 SQL Server 代理的 sysadmin 安全上下文可以执行 Integration Services 包,所以可以实现特权提升。若要防止在运行维护计划、数据收集组和其他 Integration Services 包时提升特权,请将运行包的 SQL Server 代理作业配置为具有有限特权的代理帐户,或仅将 sysadmin 成员添加到 db_ssisadmin 和 dc_admin 角色。

db_ssisltduser

枚举自己的包。

枚举所有包。

查看自己的包。

执行自己的包。

导出自己的包。

导入包。

删除自己的包。

更改自己的包角色。

db_ssisoperator

枚举所有包。

查看所有包。

执行所有包。

导出所有包。

在 SQL Server 代理中执行所有包。

Windows 管理员

查看所有正在运行的包的详细执行信息。

停止所有当前正在运行的包。

msdb 中的 sysssispackages 表包含保存到 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 数据库级角色可授予对 msdb 数据库中 Integration Services 系统表的权限,但不能授予对 DTS 系统表(例如 msdb 数据库中的 sysdtspackages)的权限。必须先授予用户对 DTS 系统表的权限,他们才能执行某些管理任务,例如在 Management Studio 中导入 DTS 包。有关 DTS 支持的详细信息,请参阅“支持 SQL Server 2008 中的 Data Transformation Services (DTS)”。

步骤 1:打开对象资源管理器,连接到 Integration Services

在使用 SQL Server Management Studio 将角色分配给包之前,必须在 SQL Server Management Studio 中打开对象资源管理器,并连接到 Integration Services。

必须启动 Integration Services 服务才能连接到 Integration Services。

打开对象资源管理器并连接到 Integration Services

  1. 打开 SQL Server Management Studio。

  2. 在**“视图”菜单上,单击“对象资源管理器”**。

  3. 在对象资源管理器工具栏上,单击**“连接”**,再单击 Integration Services

  4. 在**“连接到服务器”**对话框中,提供服务器名。可以使用句点 (.)、(local) 或 localhost 来指示本地服务器。

  5. 单击**“连接”**。

步骤 2:将读取者角色和写入者角色分配给包

可以将读取者角色和写入者角色分配给每个包。

将读取者角色和写入者角色分配给包

  1. 在对象资源管理器中,找到 Integration Services 连接。

  2. 展开“已存储的包”文件夹,然后展开包含要将角色分配到的包的子文件夹。

  3. 右键单击要向其分配角色的包。

  4. 在**“包角色”对话框中,从“读取者角色”列表中选择一个读取者角色,并从“写入者角色”**列表中选择一个写入者角色。

  5. 单击**“确定”**。

创建用户定义的角色

必须启动 SQL Server(即 MSSQLSERVER 服务),才能连接到数据库引擎以及访问 msdb 数据库。

创建用户定义的角色

  1. 打开 SQL Server Management Studio。

  2. 在**“视图”菜单上,单击“对象资源管理器”**。

  3. 在对象资源管理器工具栏上,单击**“连接”,再单击“数据库引擎”**。

  4. 在**“连接到服务器”**对话框中,提供服务器名,并选择身份验证模式。可以使用句点 (.)、(local) 或 localhost 来指示本地服务器。

  5. 单击**“连接”**。

  6. 展开“数据库”、“系统数据库”、“msdb”、“安全”和“角色”。

  7. 在“角色”节点中,右键单击“数据库角色”,再单击**“新建数据库角色”**。

  8. 在“常规”页上,提供一个名称,还可以指定一个所有者、拥有的架构以及添加角色成员。

  9. 还可以单击**“权限”**,配置对象权限。

  10. 还可以单击**“扩展属性”**,配置任何扩展属性。

  11. 单击**“确定”**。

Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 或 TechNet 上的 Integration Services 页:

若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。