敏感的SSIS程序包参数字符串中的特殊字符使程序包无效

时间:2018-09-24 18:36:08

标签: sql-server ssis sql-server-2016 ssis-2016 sql-server-job

我在SSIS包上有一个敏感的字符串参数,该参数用于存储远程服务器的密码。

enter image description here

但是,当字符串值包含花括号时,作业代理在配置该步骤的“包装参数”时会抛出错误:

  

Microsoft SQL Server Management Studio:在命令行参数中检测到错误,请确保正确设置了所有参数。   (SqlManagerUI)

enter image description here

当在Visual Studio数据工具中直接执行该程序包时,或者从密码中删除{时,或者将String配置为常规的非敏感字符串时,程序包都可以工作。我不能简单地更改密码,因为它是由第三方提供的,并且确实希望保持原样。

我相信这个问题与SQL Server 2016 problems with SSIS String parameters有关。

是否有办法修复?我试图逃脱{,但无济于事。

1 个答案:

答案 0 :(得分:2)

我有一些带有花括号的密码,但从未遇到过此问题。我正在做的另一件事是使用环境变量。我所有的连接字符串,密码,文件路径以及随环境而变化的其他参数都在环境变量中。然后,将SSIS包中的每个参数映射到相应的环境变量。

所以尝试我的方法:

  1. 创建环境
  2. 创建与参数相对应的变量
  3. 在项目中添加对环境的引用
  4. 在作业的“配置”标签上,选择环境

Job Configuration

如果您对这些步骤有任何疑问,请告诉我,我可以尝试提供一些其他详细信息。