运行SQL Server 2014。我正在遵循以下Web链接上的说明:
https://www.hansmichiels.com/2016/11/19/using-sensitive-parameters-ssis-series/
基本上,我认为在这个网站上发布的内容是不正确的。作者认为,可以将包设置为“dontsavessensite”,同时可以访问设置为sensitive的参数。每当我尝试这样做时,在getsensitivevalue()函数中都会得到一个空值,而包只是连续运行。只是为了grins,我将包部署到服务器并设置敏感的环境变量,但是包继续持续运行。
当包设置为“EncryptSensitiveWithUserKey”时,它将成功运行。
TL,博士
在将包设置为“dontsavesensitive”或必须使用“encryptsensitivewithuserkey”的C脚本任务中,是否可以访问参数值?
更新:下面的三个变量都被选择为只读,但在调试期间返回空白。注:参数值用数据填充。
public void Main()
{
// Variable declaration(s).
string strSftpUserName = (string)Dts.Variables["$Package::SftpUserName"].GetSensitiveValue();
string strSftpPassword = (string)Dts.Variables["$Package::SftpPassword"].GetSensitiveValue();
string strSshHostKeyFingerprint = (string)Dts.Variables["$Package::SftpSshHostKeyFingerprint"].GetSensitiveValue();
// Setup session options.
SessionOptions sessionOptions = new SessionOptions
{
// Set session options here.
};
try
{
using (Session session = new Session())
{
// Do something here.
}
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
// Print results to SSIS log.
Dts.Events.FireError(0, strTaskName, ex.Message, null, 0);
// Something went wrong, report a failure.
Dts.TaskResult = (int)ScriptResults.Failure;
}
}