将连接字符串存储在数据库中的想法是一个不正当的想法,但请先听我说完。我们都知道在 web.config 文件中加密连接字符串是最佳实践,但是如果我们完全跳过 web.config 文件呢?
几个月前,我被要求将数据库从一台服务器移动到另一台服务器。这意味着必须更新访问这些不同数据库的每个程序中的连接字符串。这是 2 年来我第三次不得不将数据库从一台服务器移动到另一台服务器。所以我想到了将连接字符串存储在数据库中,并为每个字符串分配一个 GUID,以便通过 Web 服务访问。无需将连接字符串放在 web.config 中,您只需将连接字符串 GUID 存储在 web.config 中,并引用连接字符串 Web 服务,以便您可以请求该连接字符串。加密可以在应用程序级别完成,连接字符串只是加密存储在数据库中。
我已经创建了一个概念证明,它工作正常(它只是在本地 Intranet 上而不暴露在 Internet 上)。
对我来说好处是显而易见的;例如能够快速更新连接字符串,而无需接触 Web 应用程序。这意味着您可以构建一个仅用于编辑数据库中的连接字符串的 Web 应用程序,DBA 可以在其中自己使用它,因此他们在移动数据库时不必打扰程序员。
但好处不是我感兴趣的。我感兴趣的是这里的每个人对做这样的事情的看法?