0

我在 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 项目交给他进行上线时,管理员可能会更改数据库用户名密码。我想知道保存此类敏感信息的最佳做法是什么。要求是没有人(管理员除外)应该知道生产中的用户名密码。

我知道在 SSIS 中,我们可以使用项目参数来保存一些值。但是如果我将密码保存为项目参数,可以看到 SSISDB 的人可以看到参数值。那么让管理员进入脚本任务来更改 C# 代码中的用户名密码会更好吗?

4

2 回答 2

1

首先,您可以使用混淆来保护您的代码和敏感信息。

其次,永远不要将您的数据库密码/用户名存储在最终产品中!!!您可以轻松地创建一个 API,该 API 可以访问数据库并从您的应用程序进行 API 调用,而无需将密码存储在产品中。

简单示例:https ://medium.com/voobans-tech-stories/how-to-quickly-create-a-simple-rest-api-for-sql-server-database-7ddb595f751a

于 2021-03-04T17:53:03.693 回答
0

我的建议是查看 SSIS 中的包配置

SQL Server Integration Services 提供了可用于在运行时更新属性值的包配置。

此外,如上面注释中所述,根据您的部署模型,您可以查看参数

配置可用于包部署模型。

参数用于代替项目部署模型的配置。

这为在运行时更改值提供了灵活性。

在此处输入图像描述

于 2021-03-05T15:47:21.403 回答