首页 > 解决方案 > SSIS 查找转换错误:对象“sp_describe_undeclared_pa​​rameters”的执行权限被拒绝

问题描述

我正在将 SSIS 包从 SQL Server 2008 R2 升级到 2017。升级其中一个包后,Advanceda 选项卡中的参数化查询Lookup Transformation现在引发验证错误。这可能是集合中唯一使用 a 的包Partial Cache,因为我找不到任何成功升级的示例来比较它。

当我尝试运行该软件包时,它记录了以下错误:

错误:2019-02-11 10:49:40.11 代码:0xC0202009 来源:匿名 DFT [209] 描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“对象“sp_describe_undeclared_pa​​rameters”、数据库“mssqlsystemresource”、架构“sys”的执行权限被拒绝。”。结束错误

错误:2019-02-11 10:49:40.15 代码:0xC020824C

来源:匿名 DFT [209] 描述:加载列元数据时发生 OLE DB 错误。检查 SQLCommand 和 SqlCommandParam 属性。结束错误

错误:2019-02-11 10:49:40.18 代码:0xC004706B

来源:匿名 DFT SSIS.Pipeline 描述:“匿名 DFT”验证失败并返回验证状态“VS_ISBROKEN”。结束错误

错误:2019-02-11 10:49:40.22 代码:0xC004700C

来源:匿名 DFT SSIS.Pipeline 描述:一个或多个组件验证失败。结束错误错误:2019-02-11 10:49:40.27 代码:0xC0024107

来源:匿名 DFT
描述:任务验证期间出现错误。结束错误

我希望只是重新映射参数,但是通过尝试Parameters打开Advanced.Lookup Transformation

根据消息,显而易见的答案是这是一个权限问题,但根据sp_describe_undeclared_pa​​rameters 的文档

权限

需要权限才能执行 @tsql 参数。

我和作业运行的服务帐户都有权执行参数化查询。

我对在 2008 R2 服务器上运行良好的 2008 R2 包和新的 2017 包之间的 2008 R2 包Lookup Transformations和它们对应的窗口进行了并排比较。Properties我发现的唯一新属性值是TreatDuplicateKeysAsError,但改变它对我的情况没有影响。

查看Advanced Editor, 中的列引用ParameterMap似乎是正确的,但查询没有选择它们。

权限问题是否比我看到的更多,或者我在这里还缺少什么?

标签: sql-serverparametersssisetllookup

解决方案


我不能指出一个特定的来源表明这是一种可能性,但最后我添加了一个额外的Connection Manager指向与原始服务器和数据库相同的服务器和数据库,但我没有使用SQL Server Native Client 11.0提供程序,而是将其更改为Microsoft OLE DB Provider for SQL Server.

繁荣。验证错误已清除;包正在运行。

虽然这是一个解决方案,但这不是一个解释,所以如果有人想插话,那就去吧。我已经浪费了一天的大部分时间来追逐这个鬼魂,所以暂时我要带上我的跑步包,并称它足够一个星期二。


推荐阅读