互联网上的 SQL 连接:好的做法?

Posted

技术标签:

【中文标题】互联网上的 SQL 连接:好的做法?【英文标题】:SQL Connection Over Internet: good practice? 【发布时间】:2013-06-20 03:54:56 【问题描述】:

我正在使用 WPF/C# 桌面应用程序,我需要通过 Internet 将数据库服务器连接到静态 IP 地址,但在某些情况下,由于 Internet ping 和延迟错误,会出现 sql 连接异常.

我也知道由此带来的一些安全风险。我已经将所有查询参数化并使用加密连接。

所以我开始思考:这是一个好习惯吗?我可以做些什么来提高安全性和性能?

【问题讨论】:

一般来说,这将是客户端和数据库之间的网络服务。 WCF 是一种在中间启动和编写这一层的快速方法。 【参考方案1】:

不,通过 Internet 公开您的 SQL 服务器不是一个好主意。这并不能阻止你这样做,但是:我不推荐它,除非数据是免费可用的并且是公共领域的(所以如果有人可以访问比你预期的更多的东西也没关系),而且对更换(所以它是否损坏并不重要)。而且即便如此我可能会建议使用服务层并将您的数据库服务器严格控制在“内部”。

重新加密:防止中间人窥探,但不限制用户可以做什么。拥有真正访问权限的恶意用户可以简单地连接并做他们想做的任何事情,绕过您现有的任何规则和过滤器。

【讨论】:

如果我禁用 Windows 身份验证并使用强密码保护连接,这将确保安全吗? 我只有一个用户可以连接到数据库。禁用所有其他用户会提高安全性吗? @Guilherme 您觉得这会如何提高安全性?你在保护什么反对? (另外:Windows 安全性可能比 SQL 安全性问题更小) 我需要防止故意删除表、截断表以及恶意更新和删除。存储在数据库中的数据很重要。此外,选择某些特定表格会带来机密信息。 @Guilherme 对;如果用户有权访问数据库,您的方法不会阻止任何这些事情。最好的办法是编写一个基本的服务层来进行数据访问并执行规则;有权访问网络服务不允许用户临时访问数据库。

以上是关于互联网上的 SQL 连接:好的做法?的主要内容,如果未能解决你的问题,请参考以下文章

python工业互联网应用实战1—SQL与ORM

python工业互联网应用实战1—SQL与ORM

互联网停机时如何使用Azure SQL数据库?

这样才是租用主机的正确方式

互联网推送服务原理

在系统中创建用户ID的最佳做法是什么?