集中和保护应用程序使用的连接字符串的最佳方法是什么?在我的环境中,我们有许多内部应用程序。每个应用程序都需要一个或多个连接字符串才能访问数据库。我们的目标是集中所有这些连接字符串(特别是 SQL 登录名和密码),以便我们可以在一处更改密码,而不是在 35 个不同的 .config 文件、注册表项等中更改密码。

目前,我们正在使用一个自行开发的组件,该组件从访问数据库中提取连接字符串信息,这满足了集中化要求,但并不是特别安全。此外,我们还有用经典的 asp、vb6、delphi、c++、.net 等语言编写的应用程序,因此该解决方案需要可供所有这些应用程序使用。

有谁知道如何做得更好,或者我们是否需要重新设计应用程序访问数据库的整个方法。

有帮助吗?

解决方案

您可以使用Windows服务器上创建允许访问SQL Server数据库的用户。然后你可以使用连接字符串中的登录Windows集成。

在公共MDB BTW存储密码使得它们irelevant。同它们不存在。

其他提示

我工作的公司也通过 SQL Server 数据库使用了类似的情况。我们最终创建了一个兼容 COM 的 .net dll,以简化和保护数据库中的 API,并确保经典 asp、.Net 和 DTS 包之间使用相同的逻辑。这一年来它对我们来说效果很好,虽然我们很多人都想用它来做一些重构项目,但解决服务器迁移或重命名等问题也很棒。

我认为你走在正确的道路上;但是,我建议进行以下更改:

  • 尝试迁移到真正的数据库服务器。Access 对于 MS Office 来说非常有用,但对于这种规模的东西来说就不那么好了。
  • 构建一个管理控制台,允许审核谁正在添加和编辑信息(确保谁也有权访问哪些设置)。
  • 构建兼容 COM 的 DLL,以便其他系统可以以安全且一致的方式使用它。

编辑:

在这样的系统中工作多年后,我注意到,它在某些解决方案上稍微束缚了你的手脚。那里有很多工具(即nHibernate、Elmah 等当连接字符串不再位于配置文件中时,(在 .Net 世界中)确实受到限制。许多可以轻松修改以使用您的 API;但是,如果您想使用它,则需要花费更多时间进行研究。仅供参考。

是没可能移动到窗口集成安全性在连接字符串,那么你不必尽可能多的担心安全方面的(除非你需要保护我猜连接的实际位置)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top