通过VPN通过VPN连接到不同网络上的数据库

时间:2013-02-04 21:22:19

标签: php sql-server perl server-side vpn

我们目前有一个流程,用户使用Cisco VPN客户端建立到远程服务器的安全隧道。然后,他们将远程桌面插入远程网络上的计算机。在远程计算机上,它们启动SQL Server 2008企业管理器,运行生成CSV文件的查询。然后将文件手动传输回本地计算机。

此过程每月只需进行一次,以便从我们的远程计算机中提取此CSV(报告)。

传输是IPSec / UDP。

我无法通过脚本找到任何帮助。这可能吗?如果不是通过PHP,可能通过perl或任何服务器端脚本?

感谢。

1 个答案:

答案 0 :(得分:0)

Perl能够做到这一点。

尝试将此问题分解为两部分:

1)生成CSV文件。 2)移出此CSV文件。

<强>第1部分:

您可以使用Perl连接到SQL Server,运行查询并生成CSV文件。

使用ODBC和DBI进行连接:How do I connect with Perl to SQL Server?

使用Text::CSV生成有效的CSV文件。

<强>第2部分:

2.1:您可以设置一个简单的(https)网络服务器来仅提供此CSV文件。如果需要,您可以在发送之前加密此文件。

您可以使用Putty设置SSH Tunel以进一步保护传输:http://www.planetb.ca/2010/08/how-to-create-an-ssh-tunnel-with-putty-and-stay-anonymous-on-a-network/

这样很容易:http://metacpan.org/pod/HTTP::Server::Brick

use HTTP::Daemon::SSL;

my $server = HTTP::Server::Brick->new(
      port => 8889,
      daemon_class => 'HTTP::Daemon::SSL',
      directory_indexing => 1,
      daemon_args  => [
         SSL_key_file  => 'my_ssl_key.pem',
         SSL_cert_file => 'my_ssl_cert.pem',
      ],
    );
$server->mount( '/csvfile' => {
    path => 'C:/path/to/your/csv/file',
    wildcard => 1,
}); 
# start accepting requests (won't return unless/until process
# receives a HUP signal)
$server->start; 

2.2:你可以在你的机器上设置ssh服务器并使用scp(来自Putty的.exe)来复制文件。

https://serverfault.com/questions/8411/what-is-a-good-ssh-server-to-use-on-windows