如何从Perl DBI保护与SQL Server的连接?

时间:2009-05-28 13:10:52

标签: sql-server perl security odbc dbi

我需要使用Perl DBI连接到安全的SQL Server数据库。我需要找到一种安全地验证用户的方法(不用担心被窃听,也不需要在客户端存储密码)。我在XP上SQL Server 2008使用Windows Server 2008, and Perl 5.10

SQL Server通过称为“SQL Server Native Access Client API”的东西支持加密连接,但我无法判断任何DBD驱动程序是否支持这种连接,或者如果它是如何使用它。

我不愿意将DBD::ODBC驱动程序与SQL Server身份验证一起使用,因为ODBC以明文形式传输用户ID和密码。

我不能将DBD :: ODBC驱动程序与Windows身份验证(可信连接)一起使用,因为服务器不在可从客户端网络访问的任何Active Directory域上。

如何保护与数据库的连接?感谢。

3 个答案:

答案 0 :(得分:2)

  

我不愿意将DBD :: ODBC驱动程序与SQL Server身份验证一起使用,因为ODBC以明文形式传输用户ID和密码。

这并非严格属实。如果您使用的是最近的SQL Server并且未在其中禁用加密,则用户名/密码和连接字符串将按如下方式加密:

客户端联系服务器并告诉它能够做什么(例如,它可以执行SSL)。如果服务器然后支持SSL,则它要求客户端加密连接信息并在此之后回退到未加密。您还应该在DSN中看到“对数据使用强加密”复选框。

答案 1 :(得分:1)

两个选项:

  1. 在两个位置之间创建IPSec隧道。一些信息在这里: technet.microsoft.com/en-us/library/cc737154(WS.10).aspx technet.microsoft.com/en-us/library/cc786385(WS.10).aspx

  2. 启用SSL。我不确定它会受到多么好的保护。 technet.microsoft.com/en-us/library/ms189067.aspx

答案 2 :(得分:1)

我建议您使用某种安全连接系统。它可能是IPSec,但它通常被认为是复杂的,所以你可能会更好(或更快)地使用我使用的OpenVPN,并且通常很满意。

它几乎可以在任何操作系统上使用,速度快,免费。您可以在此处查看:http://openvpn.net/