sql-server - SSIS 查找转换错误:对象“sp_describe_undeclared_parameters”的执行权限被拒绝
问题描述
我正在将 SSIS 包从 SQL Server 2008 R2 升级到 2017。升级其中一个包后,Advanced
a 选项卡中的参数化查询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_parameters”、数据库“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_parameters 的文档:
权限
需要权限才能执行 @tsql 参数。
我和作业运行的服务帐户都有权执行参数化查询。
我对在 2008 R2 服务器上运行良好的 2008 R2 包和新的 2017 包之间的 2008 R2 包Lookup Transformations
和它们对应的窗口进行了并排比较。Properties
我发现的唯一新属性值是TreatDuplicateKeysAsError
,但改变它对我的情况没有影响。
查看Advanced Editor
, 中的列引用ParameterMap
似乎是正确的,但查询没有选择它们。
权限问题是否比我看到的更多,或者我在这里还缺少什么?
解决方案
我不能指出一个特定的来源表明这是一种可能性,但最后我添加了一个额外的Connection Manager
指向与原始服务器和数据库相同的服务器和数据库,但我没有使用SQL Server Native Client 11.0
提供程序,而是将其更改为Microsoft OLE DB Provider for SQL Server
.
繁荣。验证错误已清除;包正在运行。
虽然这是一个解决方案,但这不是一个解释,所以如果有人想插话,那就去吧。我已经浪费了一天的大部分时间来追逐这个鬼魂,所以暂时我要带上我的跑步包,并称它足够一个星期二。
推荐阅读
- c# - C# 基础对象在新的 Unity 项目中不可序列化
- javascript - Spring 正在将 2D JSON 数组展平为 1D 字符串数组
- html - 布局Dompdf css列超出纸张范围
- batch-file - 将当前日期添加到 cURL 请求
- automated-tests - 如何解决 Cypress Cucumber 'Step implementation missing for:' 错误?
- google-api - 来自 storage.googleapis.com 的 Bigquery Storage API gRPC http 状态 400
- python - 创建一个包含相似词的新列
- phpmyadmin - 我不小心取消了 phpmyadmin 中 root 的所有权限
- ocaml - 找到没有重复的对列表的并集
- reactjs - 使用 Redux 和组件状态是个好主意吗?