2

当用户登录时。我打开连接“conn”,它是一个公共静态成员,我的 dbclass 具有与数据库相关的所有功能。然后conn 保持打开状态,直到应用程序关闭

它不会显着降低应用程序性能,但会显着提高数据库查询性能

有什么安全问题吗?如果数据库是集中式的,两台或三台PC使用独立的应用程序,那么登录时打开连接会出现什么安全问题?

或者未来还有什么问题需要解决?

编辑回复第一条评论

我检查了timespan.totalmilliseconds。涉及打开和执行查询的时间比仅在连接已经打开时执行查询的时间少两倍

编辑 --- 需要的实际答案

如果有人有充分的理由告诉我不存在安全问题,或者有充分的理由告诉我这是主要的安全问题。在等待其他人的回应后,这将被接受。

通过谷歌搜索,我没有找到任何与我的问题相关的文章/答案。

4

2 回答 2

2

我能想到的第一个问题是无论出于何种原因连接关闭(防火墙?)的情况。

如果您保持连接打开并且由于某种原因连接被迫关闭,您的程序将需要重新启动才能再次使用。但是,如果您只在需要进行查询时打开连接,请再次关闭它。即使连接已关闭,您的程序也会在需要进行新查询时尝试重新连接。

这是假设我们正在谈论访问单个数据库的单台计算机。如果我们谈论的是更多人可以访问的数据库,那么从不关闭连接将在某些时候导致主机出现问题(达到最大连接数)。更不用说它会多么容易受到攻击,导致您的连接数在几秒钟内达到最大值。

于 2012-08-24T11:37:42.750 回答
0

风险是连接字符串可能被盗。即使您将 SqlConnection 对象声明为私有。您应该最小化用户权限。也可以加密连接字符串。但无论如何,我认为这是不安全的。

于 2012-08-24T11:19:41.140 回答