我们正在完成 SSIS 包。然而,当我们进入部署阶段时,我们惊讶地意识到 SSIS 包的部署从安全性的角度来看并不是很直接。
我们需要在生产服务器中使用批处理文件或 .NET 程序运行 SSIS 包。调用者(批处理或 .NET)应通过提供参数(如源文件、目标数据库、用户 ID、密码等)调用 SSIS 包,并从 SSIS 读取返回代码(成功/错误)。用户 ID 和密码不应采用任何人都可以看到的明文格式。我们做了一些研究,发现可以使用许多选项来完成部署,例如 XML 配置、SQL 服务器配置、环境变量、注册表等,但没有提到任何关于密码加密的内容。我们如何实现安全性并确保在多个环境(DEV、UAT、PROD)中部署相同包的灵活性并在部署时简单地更改环境特定变量。
我正在寻找当应用程序第一次运行时使用以下代码自动加密连接字符串的 MVC/Entity 框架。
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
ConfigurationSection section = config.GetSection("connectionStrings");
if (!section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();
}