问题描述
我在 SSIS 脚本任务中使用 C# 读取 sql 服务器数据库,然后通过 HTTP 请求将 JSON 发送到 WEB API。所以C#应该打开数据库。我在 C# 中使用以下连接字符串
sqlConnection cn = new sqlConnection("server=xxxx;Initial Catalog=xxxx;User ID=abc;Password=abc");
用户名密码在 C# 中硬编码。当我把整个SSIS项目交给他上线时,数据库用户名密码可能会被admin更改。我想知道保存此类敏感信息的最佳做法是什么。要求是没有人(管理员除外)应该知道生产中的用户名密码。
我知道在 SSIS 中,我们可以使用项目参数来保存一些值。但是如果我将密码保存为项目参数,可以看到 SSISDB 的人可以看到参数值。那么在C#代码中让admin进入Script Task更改用户名密码是否更好?
解决方法
首先,您可以使用混淆来保护您的代码和敏感信息。
第二,永远不要在最终产品中存储您的数据库密码/用户名!!! 您可以轻松创建一个可以访问数据库并从您的应用程序调用 API 的 API,而无需在产品中存储密码。
,我的建议是查看 SSIS 中的 Package Configurations。
SQL Server Integration Services 提供了可用于在运行时更新属性值的包配置。
此外,如上面的注释中所述,根据您的部署模型,您可以查看 Parameters
配置可用于包部署模型。
参数用于代替项目部署模型的配置。
这为在运行时更改值提供了灵活性。