安全地公开 sql server 2008 以进行 Windows 身份验证

Ale*_*don 7 sql-server-2008 authentication security sql-server windows

我的公司希望有大约 100 名销售人员(分布在全国各地)能够从 excel 运行存储过程并将数据返回到电子表格中。

我们有 sql server 2008。我需要找出一种安全的方法来做到这一点。

我将在 excel 中创建一个表单,用户可以在其中按下命令按钮以根据他们选择的参数刷新数据。

  1. 我如何确保从 excel 到 sql server 的连接是安全的?
  2. 如何从excel运行存储过程?

我发现这是非常好的信息:http : //office.microsoft.com/en-us/excel-help/connect-to-import-sql-server-data-HA010217956.aspx

Windows 身份验证 选择此选项以使用当前用户的 Windows 用户名和密码。这是最安全的方法,但当许多用户连接到服务器时,它会影响性能。

但是,我希望您对此提出意见。

是的,销售代表确实有 Windows 登录,但是如果他们实际上要输入指定数据标准,然后将标准发送到存储过程,然后从服务器获取数据,我可以使用这个解决方案吗?

Not*_*tMe 13

“安全地”、“暴露”、“外部”和“数据库”这三个词不属于一起。

在任何情况下,您都不应该将 SQL 服务器暴露给 Internet。这是一个非常糟糕的主意。

所以你的问题应该是:我们如何让远程位置访问我们的 SQL 服务器?

答案是:VPN。远程用户应与您的网络建立 VPN 连接。从那里您可以授予他们对数据库的适当访问权限。

  • 您的客户将使用的确切连接方法并不重要。仅仅因为您使用 ODBC 连接与数据库交谈并不意味着其他人会这样做。此外,从数据库服务器的角度来看,它并不关心客户端是否使用 ODBC、.Net 提供程序,甚至是通过手工构建 tcp 数据包深入到裸机。问题不在于客户端如何连接,问题纯粹是限制谁甚至可以*看到*机器开始。 (4认同)
  • 不。再一次,坏主意。端口扫描器将定位服务器,然后您将有相当多的脚本日夜攻击该机器。不必介意像 SQL Slammer 这样的蠕虫病毒传播的事实,因为公司参与了这种做法。 (3认同)
  • SSL 仅加密客户端和服务器之间的连接。它并不表示实际上完全允许客户端连接到您的服务器。对于网站,人们基本上祈祷认证机制足够好以防止暴力攻击。然而,对于数据库服务器,人们很少打开该功能来审计帐户登录,即使他们这样做了,他们也很少费心阅读日志,直到出现问题*之后*。即使您阅读了日志,您也只会花费数天时间试图阻止大部分互联网访问它。相信我:VPN。 (2认同)
  • Web 应用程序通常更好,原因很简单,如果他们进入,他们只能执行您允许他们执行的操作。而直接进入数据库,您必须对如何设置安全性进行更多控制。大多数人不知道该怎么做。 (2认同)

db2*_*db2 7

从您的描述中听起来,此 Excel 工作表将用作一种交互式报告。如果是这种情况,我鼓励您尝试使用 Reporting Services。自 2005 年以来,SQL Server 的每个版本都包含它。通过这种方式,访问报表只需要使用 Web 浏览器连接到报表服务器,而不是直接访问数据库服务器。您还可以制作相当复杂的报告,而无需使用 Excel 进行所需的所有疯狂 VBA 编码(相信我,我一直在那里)。您可以将报告导出到 Excel 文件,并且通常在格式化方面做得很好。

但是,我仍然建议将报告服务器保留在 VPN 之后。