首页 > 解决方案 > 尝试在表达式生成器中解析 SSIS 连接字符串

问题描述

在 SSIS 中,我使用 Project.params 参数化数据库连接字符串。使用 Windows 身份验证这很简单,但是我想使用 SQL 身份验证来代替。该连接将在 Execute SQL 任务中使用,以执行仅获取数据列表的存储过程。使用 SQL 身份验证生成参数。密码不存储(这个很好),所以我添加了四个参数:Server、DBName、DBUser、DBPass。我希望能够在运行时动态更改其中的任何一个。所以我的想法是在 db 连接管理器的连接字符串属性上构建连接字符串。问题是它似乎不想验证。这是我正在尝试做的事情的一个想法。

Expression:"Data Source="+ @[$Project::ServerName]+";Initial Catalog="+ @[$Project::DBName]+";User="+ @[$Project::DBUserName]+";password=" +@[$Project::DBPassword]+";"

标签: sql-serverssis

解决方案


敏感参数(密码)不能在表达式中使用。您将看到如下错误消息:

Expression cannot be evaluated.

The expression will not be evaluated because it contains sensitive parameter 
variable "$Package::pw". Verify that the expression is used properly
 and that it protects the sensitive information.

您可以按照尼克的建议进行操作并直接参数化连接管理器。我建议只参数化连接字符串和密码(单独)。这将允许您在 windows 和 sql 身份验证之间进行更改。
IE

Windows: 连接字符串:数据源=;初始目录=;提供者=SQLNCLI11.1;集成安全=SSPI;

密码:留空

SQL: ConnectionString:数据源=;初始目录=;提供者=SQLNCLI11.1;用户ID=密码:


推荐阅读