sql服务器-通过PHP通过VPN连接到不同网络上的数据库


sql server - Connecting to a database on a different network via VPN through PHP

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

这个过程只需要每月进行一次,就可以从我们的远程机器中提取这个CSV(报告)。

传输是IPSec/UDP。

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

谢谢。

Perl能够做到这一点。

试着把这个问题分解为两部分:

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

第1部分:

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

使用ODBC和DBI连接:如何使用Perl连接SQL Server?

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

第2部分:

2.1:您可以设置一个简单的(https)Web服务器,只提供这个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