【问题标题】:Is it possible to delete an SSIS package from the MSDB database in SQL Server 2005 without DCOM rights?是否可以在没有 DCOM 权限的情况下从 SQL Server 2005 中的 MSDB 数据库中删除 SSIS 包?
【发布时间】:2009-01-19 15:50:04
【问题描述】:

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

因此,我们可以成功地将包部署到服务器并使用 SQL Server 代理运行它,但我不知道如何从服务器中删除包。

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

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

【问题讨论】:

    标签: sql-server-2005 ssis


    【解决方案1】:

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

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

    【讨论】:

    • 在 2012 年,他们更名了。我最终使用 sp_ssis_listfolders 和 sp_ssis_listpackages 找到我的包,然后使用 sp_ssis_deletepackage 删除它。
    【解决方案2】:

    供任何人参考。

    检查 sp_dts_deletepackage 实际做了什么(右键单击 - 修改)表明,除了一些检查(安全)之外,它最终会做:

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

    在任何其他表中没有删除或更新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多