Integration Services 角色(SSIS 服务)
SQL Server Integration Services 包括三个固定数据库级角色、db_ssisadmin
db_ssisltduser和db_ssisoperator,用于控制对包的访问。 只能在保存到 msdb
SQL Server 中的数据库的包上实现角色。 可以使用 SQL Server Management Studio将角色分配给包。 角色分配将保存到 msdb
数据库。
读取和写入操作
下表介绍了 Integration Services中 Windows 和固定数据库级角色的读写操作。
角色 | 读操作 | 写操作 |
---|---|---|
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
sysssispackages 表包含保存到SQL Server的包。 有关详细信息,请参阅 sysssispackages (Transact-SQL)。
sysssispackages 表的列中包含关于分配给包的角色的信息。
readerrole 列指定对包具有读访问权限的角色。
writerrole 列指定对包具有写访问权限的角色。
ownersid 列包含创建包的用户的唯一安全标识符。 此列定义包的所有者。
权限
默认情况下,和 db_ssisoperator固定数据库级角色的权限db_ssisadmin
以及创建包的用户的唯一安全标识符适用于包的读取者角色,并且角色的权限db_ssisadmin
和创建包的用户的唯一安全标识符适用于编写者角色。 用户必须是 、 db_ssisltduser 或 db_ssisoperator 角色的成员db_ssisadmin
才能对包具有读取访问权限。 用户必须是角色的成员 db_ssisadmin
才能具有写入访问权限。
对包的访问
固定数据库级角色可以与用户定义的角色结合使用。 用户定义的角色就是你在 SQL Server Management Studio 中创建的、随后用来为包分配权限的角色。 若要访问包,用户必须是用户定义的角色和相关的 Integration Services 固定数据库级角色的成员。 例如,如果用户是分配给包的 AuditUsers 用户定义角色的成员,则他们还必须是 、db_ssisltduser 或 db_ssisoperator 角色的成员db_ssisadmin
,才能对包具有读取访问权限。
如果不为包分配用户定义角色,则对包的访问权限由固定数据库级角色确定。
如果要使用用户定义的角色,必须先将其添加到数据库, msdb
然后才能将其分配到包。 您可以在 SQL Server Management Studio中创建新的数据库角色。
Integration Services 数据库级角色可授予 msdb 数据库中的 Integration Services 系统表的权限。
SQL Server (必须先启动 MSSQLSERVER 服务) ,然后才能连接到数据库引擎并访问msdb
数据库。
为了向包分配角色,您需要完成以下任务。
打开对象资源管理器并连接到 Integration Services
在使用 SQL Server Management Studio将角色分配给包之前,必须在 SQL Server Management Studio 中打开对象资源管理器,并连接到 Integration Services。
必须启动 Integration Services 服务才能连接到 Integration Services。
将读取者角色和写入者角色分配给包
可以将读取者角色和写入者角色分配给每个包。