当用户登录时。我打开连接'conn',这是一个公共静态成员我的dbclass,它具有与数据库相关的所有功能。然后 conn保持打开,直到申请被关闭
它不会显着降低应用程序性能,但可显着提高数据库查询性能。
有任何安全问题吗?如果数据库是集中式的,并且两台或三台PC使用它与独立的应用程序,那么由于在登录时打开连接会出现什么安全问题?
或将来面临的任何其他问题?
修改以回复第一条评论
我检查了timespan.totalmilliseconds。涉及打开和执行查询的时间比仅在连接已经打开时执行查询需要的时间少两倍
编辑---所需的实际答案。
如果某个有充分理由的人告诉我没有安全问题或有充分理由说明这是一个主要的安全问题。在等待其他人回复后,这将被接受。
通过Google搜索,我找不到任何文章/答案,这些都是我的问题。
答案 0 :(得分:2)
我能想到的第一个问题是连接关闭的原因(防火墙?)。
如果您保持连接打开并且由于某种原因强制关闭连接,则需要重新启动程序才能再次使用。但是,如果您只在需要进行查询时打开连接,请再次关闭它。即使连接已关闭,您的程序也会在需要进行新查询时尝试重新连接。
这假设我们正在讨论访问单个数据库的单台计算机。如果我们讨论的是更多人可以访问的数据库,那么永远不会关闭连接会导致主机出现问题(达到最大连接数)。更不用说攻击会导致您的连接数量在几秒钟内达到最大值。
答案 1 :(得分:0)
风险是连接字符串可能被盗。即使您将SqlConnection对象声明为私有。您应该最小化用户权限。此外,还可以加密连接字符串。但无论如何我认为这是不安全的。