是否可以从没有DCOM权限的SQL Server 2005中的MSDB数据库中删除SSIS包?

时间:2009-01-19 15:50:04

标签: sql-server-2005 ssis

很遗憾,我们没有对此MSDN文章中提到的SQL Server进行必需的DCOM访问,但我们对SQL Server实例拥有完全的管理权限。

因此,我们可以成功地将程序包部署到服务器并使用SQL Server代理程序运行它,但我无法解决如何从服务器中删除程序包的问题。

我唯一能想到的就是从MSDB数据库中的dbo.sysdtspackages90表中删除该行,但这对我来说似乎有点极端(如果不是非常危险!)。

问题在于我们的服务器管理是外包的,我们必须努力争取获得所需的访问权限 - 它是否值得(可能是1到2个月)代价高昂的战斗,还是我可以通过其他方式得到我们需要的东西?

2 个答案:

答案 0 :(得分:3)

我认为如果您觉得删除该行不安全,还可以调用存储过程sp_dts_deletepackage。首先调用sp_dts_getfolder获取文件夹ID,然后将此ID传递给sp_dts_deletepackage

另一种方法是配置本地SSIS服务,使其具有此远程SQL Server存储的文件夹(查看MSDN以进行SSIS服务配置编辑)。然后,当您连接到本地SSIS服务时,您将看到这些远程包,并且可以使用UI进行删除。然后,该服务将连接到SQL并为您调用这些存储的过程。

答案 1 :(得分:1)

任何人的信息。

检查sp_dts_deletepackage实际执行的操作(右键单击 - 修改)显示除了一些检查(安全性)之外,它最终会执行:

DELETE FROM sysdtspackages90
WHERE
  [name] = @name AND
  [folderid] = @folderid AND
  [packageformat] = 0

不删除或更新任何其他表