gpt4 book ai didi

deployment - 取消选中敏感时SSIS清除加密密码

转载 作者:行者123 更新时间:2023-12-04 00:56:45 29 4
gpt4 key购买 nike

使用的工具

  • Visual Studio 2017(带 SSIS)
  • SQL Server 管理工作室 17.9.1

参与过程

两个 SSIS 开发人员和具有存储已部署项目的集成服务目录的 SSMS。

概览

我有一个解决方案,其中包含在 SSIS 中创建的项目。每个项目都有为每个数据库连接指定两个不同参数的项目参数:连接字符串和密码。密码已标记为敏感。

项目及其所有包的 ProtectionLevel 设置为 EncryptAllWithPassword。项目被推送到 git 存储库,另一个开发人员 下载更改。现在,他需要提供密码才能使用该项目(或解决方案中的多个项目)。到目前为止一切顺利,我们在项目级别有一个“主密码”,可以保护对敏感密码等参数的访问。当开发人员转到 Project.params 并取消选中敏感标记时,将显示密码。现在一切都很好,因为他需要先知道项目的密码才能看到密码。

这是棘手的部分

在部署项目时执行 Integration Services Catalog,ProtectionLevel 正在更改,并且可以从 Management Studio 导出的项目不再受密码保护。要导出这样的项目,显然需要 ssis_admin 权限,但这超出了此问题的范围。当项目被部署然后从 SSMS 导入回 SSIS 时,开发人员可以在没有密码的情况下打开它并取消勾选 Project.params 密码的敏感标记。现在他可以看到所有密码。这是错误的。

我想达到什么目的

我想用我们在 SSMS 中的敏感值来模仿相同的行为。每当您取消选中环境变量上的敏感标记时,该值就会被清除 - 如下所示。

enter image description here

但是,当我在 SSIS Project.params(取消选中敏感标记)中执行相同操作时,该值仍会显示,因此我可以看到所有密码 - 如下所示。

enter image description here

我希望它按原样存储,但看不到它的纯文本值。

有可能吗?或者也许有更好的方法来组织这个?我需要能够从提供环境变量的 SQL Server 代理 (SSMS) 以及我自己的计算机在 SSIS 下执行包,这就是为什么我需要存储这些密码以免每次都重复它们的原因。

最佳答案

您描述的这个问题对于任何在 SSIS 上协同工作的团队来说都是一个现实问题。我将描述我用来解决这个问题的模式,这可能会有所帮助。首先,我应该声明我不喜欢在源代码管理中存储密码,即使它们是加密的。这是我通常做的事情:

  • 将所有 SSIS 包和项目设置为不保存敏感。这将从文件中删除所有密码并关闭源代码控制漏洞
  • 如果可能,所有开发人员都应该在本地设置 ETL 生态系统 - SQL 数据库(没有数据或只有测试数据)、文件系统等。所有包都应该配置为在这个本地环境中工作。通过这种方式,您可以成为管理员,连接 windows 身份验证并完全控制测试数据。这也有助于您避免干扰其他任何人的开发和测试。
  • 对于 SQL 连接,设置连接字符串和密码的参数。连接字符串可以指向您的本地实例并使用 Windows 身份验证。密码可以为空并检查为敏感。如果每个人都以相同的方式设置他们的本地系统,那么当另一个开发人员打开它并开始进行项目工作时,无需进行任何更改。
  • 对于部署,可以为每台服务器配置环境。密码可以选择性地用于 SQL 身份验证,并且连接字符串将更改为包含用户名属性而不是 Windows 身份验证。

上述模式使得团队开发变得非常容易,并且部署自动化非常直接。

关于deployment - 取消选中敏感时SSIS清除加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55040857/

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