gpt4 book ai didi

sql - SSIS 包的安全部署

转载 作者:行者123 更新时间:2023-12-04 04:41:37 25 4
gpt4 key购买 nike

我们正在完成 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();
}

最佳答案

你的问题混淆了事情。

默认情况下,SSIS 将使用作者的 Active Directory、AD 帐户加密任何可能具有敏感性质的内容。 SSIS Packages Using Package Protection Level此包保护级别为 EncryptSensitiveWithUserKey如果您在连接字符串中使用 SQL Server 用户和密码,则 SSIS 包中的静态值将被加密。不信,我打开文件,找到连接管理器的 ConnectionString 属性。

部署不是通过 XML、SQL Server、注册表等完成的。这些是指创建和存储 SSIS 包在运行时可能访问的配置值的方法。配置没有解密值的概念。这并不是说您不能加密值并为调用者解密它们,只是没有用于表示“使用此 key 解密”的内置机制。

我们正在使用的一种方法是使用 SQL Server 来保存加密数据。我们创建授权使用 key 的角色,然后计算列根据角色成员身份自动解密数据。不在查询列的角色中的人只会将 NULL 作为解密值返回。它运行良好。 EncryptionPOC

部署是通过

  • 文件复制
  • dtutil.exe
  • dtsinstall.exe
  • .NET api
  • 关于sql - SSIS 包的安全部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790714/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com